Umfang von umask
Das Betriebssystem gewährt beim Erstellen neuer Dateien oder Verzeichnisse Standardberechtigungen. Der `umask`-Wert wird von diesen Standardberechtigungen 'ausgeschlossen', um die endgültigen Berechtigungen zu bestimmen. `umask` ist aus sicherheitstechnischer Sicht wichtig, da beispielsweise verhindert werden kann, dass wichtige Konfigurationsdateien mit zu offenen Berechtigungen erstellt werden. Der `umask`-Wert kann in jeder Benutzersitzung unterschiedlich festgelegt werden und wird normalerweise in Shell-Initialisierungsdateien wie `.bashrc` oder `.profile` konfiguriert.
Funktionsweise von umask
`umask` ist **eine Maskenwert, der die Berechtigungen angibt, die 'ausgeschlossen' werden sollen, nicht die Berechtigungen, die erlaubt werden sollen**. Das bedeutet, dass das Ergebnis der endgültigen Berechtigungen die maximalen Standardberechtigungen minus den `umask`-Wert ist.
Maximale Standardberechtigungen
- Datei: `666` (Lesen und Schreiben, keine Ausführungsberechtigung)
- Verzeichnis: `777` (alle Berechtigungen einschließlich Lesen, Schreiben und Ausführen)
Berechnung des umask-Werts
`umask` wird als dreistellige Oktalzahl ausgedrückt (z. B. `022`, `002`). Dieser Wert wird in der Reihenfolge Eigentümer (User), Gruppe (Group) und Andere (Others) angewendet. Jede Ziffer steht für die Summe der Berechtigungsbits (Lesen=4, Schreiben=2, Ausführen=1). Die endgültigen Berechtigungen werden wie folgt berechnet:
Typ | Maximale Standardberechtigungen | umask | Endgültige Berechtigungen |
---|---|---|---|
Datei | 666 (rw-rw-rw-) | 022 (--w--w-) | 644 (rw-r--r--) |
Verzeichnis | 777 (rwxrwxrwx) | 022 (--w--w-) | 755 (rwxr-xr-x) |
Typische umask-Werte
Auf den meisten Systemen beträgt der Standard-`umask`-Wert `0022` oder `0002`. Die führende `0` steht für spezielle Berechtigungen (sticky bit, SGID, SUID) und wird normalerweise auf `0` gesetzt.
Bedeutung typischer umask-Werte
- `umask 022`: Dateien werden mit `644`(rw-r--r--), Verzeichnisse mit `755`(rwxr-xr-x) Berechtigungen erstellt. Dies ist die häufigste Einstellung, die dem Eigentümer alle Berechtigungen und der Gruppe sowie anderen Benutzern Lese- und Ausführungsberechtigungen gewährt.
- `umask 002`: Dateien werden mit `664`(rw-rw-r--), Verzeichnisse mit `775`(rwxrwxr-x) Berechtigungen erstellt. Dies erlaubt Gruppenbenutzern ebenfalls Schreibberechtigungen und ist vorteilhaft für die Zusammenarbeit innerhalb der gleichen Gruppe.
- `umask 077`: Dateien werden mit `600`(rw-------), Verzeichnisse mit `700`(rwx------) Berechtigungen erstellt. Dies ist eine sehr strenge Berechtigungseinstellung, bei der niemand außer dem Eigentümer Zugriff hat. Geeignet für sehr sicherheitsrelevante persönliche Dateien oder Verzeichnisse.
Wichtige umask-Befehlsoptionen
`umask`-Befehl wird verwendet, um den aktuellen Wert zu überprüfen oder einen neuen Wert festzulegen. Ohne Optionen zeigt er den aktuellen `umask`-Wert an.
1. Überprüfen und Festlegen des umask-Werts
Erzeugter Befehl:
Kombinieren Sie die Befehle.
Beschreibung:
`umask` Führen Sie den Befehl aus.
Kombinieren Sie diese Optionen und führen Sie die Befehle virtuell zusammen mit der KI aus.
Beispiele
Lernen Sie anhand verschiedener Anwendungsbeispiele des `umask`-Befehls, wie Sie die Standardberechtigungen für neu erstellte Dateien und Verzeichnisse überprüfen und festlegen.
Aktuellen umask-Wert überprüfen
umask
Überprüfen Sie den `umask`-Wert der aktuellen Shell-Sitzung in oktaler Form (z. B. `0022`).
umask-Wert im symbolischen Modus überprüfen
umask -S
Überprüfen Sie den `umask`-Wert in der Form von 'u=rwx,g=rx,o=rx' anstelle von oktal, um die letztendlich erlaubten Berechtigungen anzuzeigen.
umask-Wert auf 002 festlegen
umask 002
Ändern Sie den `umask`, damit neu erstellte Dateien mit `664`(rw-rw-r--) und Verzeichnisse mit `775`(rwxrwxr-x) Berechtigungen festgelegt werden. (Schreibberechtigung für Benutzer in derselben Gruppe zulassen)
Strengen umask-Wert auf 077 festlegen
umask 077
Ändern Sie den `umask`, damit neu erstellte Dateien mit `600`(rw-------) und Verzeichnisse mit `700`(rwx------) Berechtigungen festgelegt werden. Zugriff für niemanden außer dem Eigentümer.
Überprüfen der Berechtigungen für Dateien/Verzeichnisse nach Änderung des umask
umask 002
touch test_file_002.txt
mkdir test_dir_002
ls -l test_file_002.txt test_dir_002
Nachdem Sie den umask auf `002` festgelegt haben, erstellen Sie neue Dateien und Verzeichnisse, um zu überprüfen, ob die geänderten Berechtigungen angewendet wurden, indem Sie `ls -l` verwenden.