Ich bekomme 700, wenn ich eine Testdatei mache, aber umask ist 0002? Warum ist es nicht 664?

7144

Wo werden die Standardwerte von 666 und 777 für Dateien bzw. Verzeichnisse gespeichert?

umask 0002 touch dummy  ls -l  

Sagt mir, dass die Berechtigungen des Dummys 700 sind, im Gegensatz zu den erwarteten 644. Irgendwelche Ideen?

1
Es scheint nicht so, als würde umask irgendetwas tun. Selbst nachdem ich umask auf 100 gesetzt und dann eine temporäre Datei erstellt habe, bekomme ich immer noch 700 als Berechtigungen. vor 11 Jahren 0
Was für ein Dateisystem ist das? Wenn es sich um ein FAT / vFAT-Dateisystem handelt, das nicht alle Berechtigungen versteht, hängen die tatsächlichen Ergebnisse mehr von den Mount-Optionen als von umask ab. vor 11 Jahren 5
FWIW, `mktemp`, der Befehl * real *" temporäre Datei erstellen ", erteilt nur dem Eigentümer Berechtigungen. Daniel Beck vor 11 Jahren 1

1 Antwort auf die Frage

5
max

[max @ localhost ~] $ umask

Dies wird standardmäßig umask angezeigt

0002

In der /etc/bashrcDatei werden Standardberechtigungen gespeichert

16 if [$ UID -gt 199] && ["` id -gn "" = "` id -un ""]; dann 17 umask 002 18 sonst 19 umask 022 20 fi 

Die Standard-Umask für normale Benutzer 002

Die Standard-Umask für den Root-Benutzer ist 022

Für Verzeichnisse sind die Basisberechtigungen 0777 und für Dateien 0666

Das heißt, wenn Sie den umask-Wert auf 002 setzen, subtrahieren Sie die umask von den Basisberechtigungen

Für Verzeichnisse

777-002 = 775

Für Dateien

666-002 = 664

[max @ localhost ~] $ mkdir file1

[max @ localhost ~] $ ls -ld Datei1

drwxrwxr-x 2 max max 4096 Sep 25 15:37 file1 ------> 775

[max @ localhost ~] $ touch file2

[max @ localhost ~] $ ls -l Datei2

-rw-rw-r-- 1 max max 0 Sep 25 15:40 file2 -------> 664