Wie kann ich die Berechtigung gemäß der Maske auf die Standardeinstellung zurücksetzen, damit für sie Berechtigungen festgelegt werden, wenn die Datei gerade erstellt wurde?
Beispiel für das, was ich erreichen möchte:
umask
ist also auf 0022 gesetzt
touch file
mkdir directory
Die Berechtigungen der Datei sind jetzt rw-r--r--
Die Berechtigungen des Verzeichnisses sind jetzt rwxr-xr-x
chmod 777 file
chmod 777 directory
Die Berechtigungen der Datei sind jetzt rwxrwxrwx
Die Berechtigungen des Verzeichnisses sind jetzt rwxrwxrwx
Gibt es eine Möglichkeit, die Dauerwellen auf die Standardeinstellungen zurückzusetzen, damit die Datei rw-r--r--
und das Verzeichnis rwxr-xr-x
verwendet werden chmod
?
chmod =rwx file
, nicht sicher, was genau es tut, aber es sieht so aus, als würde es die Berechtigungen auf die Standardeinstellungen zurücksetzen, aber nur für VerzeichnisseDie Masken werden bitweise
AND
mit derbitwise negated
Maske angewendet. Wenn Sie also Ihren eigenen endgültigen Berechtigungsmodus erstellen möchten, können Sie Folgendes tun:Sie müssen das oktal zurückdrucken, damit Sie es weitergeben können an
chmod
:Dabei ist 0777 der Berechtigungsmodus, auf den Sie die Maske anwenden möchten (Sie können sie mit
stat -c %a file
oder erhaltenstat -c %a directory
).Sie können das oben Gesagte wiederholen, um zu sehen, wie die Prozessersetzung ausgewertet wird (für eine
umask
von erhalten0022
Sie755
und644
).Sie könnten eine generische Funktion daraus machen:
Für Ihre spezielle Verwendung sind chmod-Referenzdateien eine weitere Option.
quelle