Die umask fungiert als eine Reihe von Berechtigungen, die Anwendungen nicht für Dateien festlegen können. Es ist eine Erstellungsmaske für den Dateimodus für Prozesse und kann nicht für Verzeichnisse selbst festgelegt werden. Die meisten Anwendungen würden keine Dateien mit festgelegten Ausführungsberechtigungen erstellen, daher hätten sie einen Standardwert von 666
, der dann von der umask geändert wird.
Da Sie die umask so eingestellt haben, dass die Lese- / Schreibbits für den Eigentümer und die Lesebits für andere entfernt werden, würde ein Standard wie 777
in Anwendungen zu Dateiberechtigungen führen 133
. Dies würde bedeuten, dass Sie (und andere) die Datei ausführen könnten und andere in der Lage wären, darauf zu schreiben.
Wenn Sie möchten, dass Dateien nur vom Eigentümer gelesen, geschrieben oder ausgeführt werden, sollten Sie eine umask verwenden 077
, um diese Berechtigungen für die Gruppe und andere zu deaktivieren .
Im Gegensatz dazu macht eine umask von 000
neu erstellte Verzeichnisse für alle lesbar, beschreibbar und abbaubar (die Berechtigungen sind 777
). Eine solche umask ist sehr unsicher und Sie sollten die umask niemals auf einstellen 000
.
Die Standardeinstellung für umask unter Ubuntu war, 022
was bedeutet, dass neu erstellte Dateien von jedem gelesen werden können, aber nur vom Eigentümer geschrieben werden können:
user@computer:~$ touch new-file-name
user@computer:~$ ls -dl new-file-name
-rw-r--r-- 1 user user 0 Apr 1 19:15 new-file-name
Ab Ubuntu Oneiric (11.10) wurde die Standardeinstellung umask gelockert 002
, wodurch der Schreibzugriff auf die Gruppe des Besitzers erweitert wird:
user@computer:~$ touch new-file-name
user@computer:~$ ls -dl new-file-name
-rw-rw-r-- 1 user user 0 Apr 1 19:15 new-file-name
Umask anzeigen und ändern
Um Ihre aktuelle umask-Einstellung anzuzeigen, öffnen Sie ein Terminal und führen Sie den Befehl aus:
umask
Führen Sie Folgendes aus, um die umask-Einstellung der aktuellen Shell in etwas anderes zu ändern, z. B. 077:
umask 077
Um zu testen, ob diese Einstellung funktioniert oder nicht, können Sie eine neue Datei erstellen (die Dateiberechtigungen einer vorhandenen Datei sind nicht betroffen) und Informationen zur Datei anzeigen. Führen Sie Folgendes aus:
user@computer:~$ touch new-file-name
user@computer:~$ ls -dl new-file-name
-rw------- 1 user user 0 Apr 1 19:14 new-file-name
Die umask-Einstellung wird von Prozessen übernommen, die von derselben Shell gestartet wurden. Starten Sie beispielsweise den Texteditor GEdit, indem Sie ihn gedit
im Terminal ausführen und eine Datei mit gedit speichern. Sie werden feststellen, dass die neu erstellte Datei von der gleichen umask-Einstellung wie im Terminal betroffen ist.
Anwendungsfall: Mehrbenutzersystem
Wenn Sie sich auf einem System befinden, das von mehreren Benutzern gemeinsam genutzt wird, ist es wünschenswert, dass andere Benutzer keine Dateien in Ihrem Ausgangsverzeichnis lesen können. Dafür ist eine umask sehr nützlich. Bearbeiten ~/.profile
und fügen Sie eine neue Zeile hinzu mit:
umask 007
Sie müssen sich erneut anmelden, damit diese Änderung in umask ~/.profile
wirksam wird. Als Nächstes müssen Sie die vorhandenen Dateiberechtigungen für Dateien in Ihrem Ausgangsverzeichnis ändern, indem Sie das Lese-, Schreib- und Ausführungsbit für die Welt entfernen. Öffne ein Terminal und führe aus:
chmod -R o-rwx ~
Wenn Sie möchten, dass diese umask-Einstellung auf alle Benutzer im System angewendet wird, können Sie die systemweite Profildatei unter bearbeiten /etc/profile
.
app_mode 666 rw- rw- rw-
umask 644 --0 -00 -00
file_mode 022 --- -w- -w-