Auf Linux- und Unix-Betriebssystemen werden alle neuen Dateien mit einem Standardsatz von Berechtigungen erstellt. Die umask
Mit dem Dienstprogramm können Sie die Dateimodus-Erstellungsmaske anzeigen oder einstellen, die die Berechtigungsbits für neu erstellte Dateien oder Verzeichnisse festlegt.
Es wird von mkdir, touch, tee und anderen Befehlen verwendet, die neue Dateien und Verzeichnisse erstellen.
Linux-Berechtigungen #
Bevor wir fortfahren, lassen Sie uns kurz das Linux-Berechtigungsmodell erklären.
In Linux ist jede Datei einem Eigentümer und einer Gruppe zugeordnet und mit Zugriffsrechten für drei verschiedene Benutzerklassen versehen:
- Der Eigentümer der Datei.
- Die Gruppenmitglieder.
- Alle anderen.
Es gibt drei Berechtigungstypen, die für jede Klasse gelten:
- Die Leseberechtigung.
- Die Schreibberechtigung.
- Die Ausführungsberechtigung.
Mit diesem Konzept können Sie festlegen, welche Benutzer die Datei lesen, in die Datei schreiben oder die Datei ausführen dürfen.
Um die Dateiberechtigungen anzuzeigen, verwenden Sie ls
Befehl:
ls -l dirname
drwxr-xr-x 12 linuxize users 4.0K Apr 8 20:51 dirname
|[-][-][-] [------] [---]
| | | | | |
| | | | | +-----------> Group
| | | | +-------------------> Owner
| | | +----------------------------> Others Permissions
| | +-------------------------------> Group Permissions
| +----------------------------------> Owner Permissions
+------------------------------------> File Type
Das erste Zeichen stellt den Dateityp dar, der eine normale Datei sein kann (-
), ein Verzeichnis (d
), ein symbolischer Link (l
) oder einen anderen speziellen Dateityp.
Die nächsten neun Zeichen stellen die Berechtigungen dar, drei Sätze mit jeweils drei Zeichen. Die ersten Sätze zeigen die Berechtigungen des Besitzers, die zweiten die Gruppenberechtigungen und der letzte Satz zeigt die Berechtigungen aller anderen.
Zeichen r
mit einem Oktalwert von 4
steht für lesen, w
mit einem Oktalwert von 2
für schreiben, x
mit einem Oktalwert von 1
für die Ausführungserlaubnis und (-
) mit einem Oktalwert von 0
für keine Berechtigungen.
Es gibt auch drei weitere spezielle Dateiberechtigungstypen:setuid
, setgid,
und Sticky Bit
.
Im obigen Beispiel (rwxr-xr-x
) bedeutet, dass der Eigentümer Lese-, Schreib- und Ausführungsberechtigungen hat (rwx
), die Gruppe und andere haben Lese- und Ausführungsberechtigungen.
Wenn wir die Dateiberechtigungen in numerischer Notation darstellen, kommen wir auf die Zahl 755
:
- Eigentümer:
rwx
=4+2+1 = 7
- Gruppe:
r-x
=4+0+1 = 5
- Andere:
r-x
=4+0+1 = 5
Bei der Darstellung in numerischer Notation können Berechtigungen drei oder vier Oktalziffern (0-7) haben. Die erste Ziffer stellt die Sonderberechtigungen dar, und wenn sie weggelassen wird, bedeutet dies, dass keine Sonderberechtigungen für die Datei festgelegt sind. In unserem Beispiel 755
ist dasselbe wie 0755
. Die erste Ziffer kann eine Kombination aus 4
sein für setuid
, 2
für setgid
, und 1
für Sticky Bit
.
Dateiberechtigungen können mit chmod
geändert werden Befehl und Besitz mit chown
Befehl.
Umask verstehen #
Auf Linux-Systemen sind die standardmäßigen Erstellungsberechtigungen standardmäßig 666
für Dateien, die Benutzern, Gruppen und anderen sowie 777
Lese- und Schreibberechtigungen erteilt für Verzeichnisse, was Lese-, Schreib- und Ausführungsberechtigungen für Benutzer, Gruppen und andere bedeutet. Linux lässt nicht zu, dass eine Datei mit Ausführungsberechtigungen erstellt wird.
Die standardmäßigen Erstellungsberechtigungen können mit umask
geändert werden Dienstprogramm.
umask
wirkt sich nur auf die aktuelle Shell-Umgebung aus. Bei den meisten Linux-Distributionen wird der standardmäßige systemweite umask-Wert in pam_umask.so
festgelegt oder /etc/profile
Datei.
Wenn Sie für jeden Benutzer einen anderen Wert angeben möchten, bearbeiten Sie die Shell-Konfigurationsdateien des Benutzers, z. B. ~/.bashrc
oder ~/.zshrc
. Sie können auch die aktuelle Sitzung umask
ändern Wert, indem Sie umask
ausführen gefolgt vom gewünschten Wert.
Um den aktuellen Maskenwert anzuzeigen, geben Sie einfach umask
ein ohne Argumente:
umask
Die Ausgabe enthält die
022
Die umask
-Wert enthält die Berechtigungsbits, die NICHT werden auf die neu erstellten Dateien und Verzeichnisse gesetzt werden.
Wie wir bereits erwähnt haben, sind die Standarderstellungsberechtigungen für Dateien 666
und für Verzeichnisse 777
. Um die Berechtigungsbits der neuen Dateien zu berechnen, subtrahieren Sie den umask-Wert vom Standardwert.
Zum Beispiel, um zu berechnen, wie umask 022
wirkt sich auf neu erstellte Dateien und Verzeichnisse aus, verwenden Sie:
- Dateien:
666 - 022 = 644
. Der Eigentümer kann die Dateien lesen und ändern. Gruppe und andere können die Dateien nur lesen. - Verzeichnisse:
777 - 022 = 755
.Der Besitzer kanncd
in das Verzeichnis und listen, lesen, ändern, erstellen oder löschen Sie die Dateien im Verzeichnis. Gruppe und andere könnencd
in das Verzeichnis und listen und lesen Sie die Dateien.
Mit -S
können Sie sich den Maskenwert auch in symbolischer Schreibweise anzeigen lassen Möglichkeit:
umask -S
u=rwx,g=rx,o=rx
Im Gegensatz zur numerischen Notation enthält der Wert der symbolischen Notation die Berechtigungsbits, die für die neu erstellten Dateien und Verzeichnisse gesetzt werden.
Festlegen des Maskenwerts #
Die Dateierstellungsmaske kann in oktaler oder symbolischer Notation eingestellt werden. Um die Änderungen dauerhaft zu machen, setzen Sie den neuen umask
Wert in einer globalen Konfigurationsdatei wie /etc/profile
Datei, die alle Benutzer betrifft, oder in Shell-Konfigurationsdateien eines Benutzers wie ~/.profile
, ~/.bashrc
oder ~/.zshrc
, die nur den Benutzer betrifft. Die Benutzerdateien haben Vorrang vor den globalen Dateien.
Bevor Sie Änderungen an umask
vornehmen Stellen Sie sicher, dass der neue Wert kein potenzielles Sicherheitsrisiko darstellt. Werte weniger restriktiv als 022
sollte mit großer Vorsicht verwendet werden. Beispiel:umask 000
bedeutet, dass jeder Lese-, Schreib- und Ausführungsberechtigungen für alle neu erstellten Dateien hat.
Angenommen, wir möchten restriktivere Berechtigungen für die neu erstellten Dateien und Verzeichnisse festlegen, damit andere nicht in der Lage sind, cd
auszuführen in die Verzeichnisse und lesen Sie Dateien. Die gewünschten Berechtigungen sind 750
für Verzeichnisse und 640
für Dateien.
Um die umask
zu berechnen Wert, subtrahieren Sie einfach die gewünschten Berechtigungen von den Standardberechtigungen:
Umask-Wert:777-750 = 027
Die gewünschte umask
Der in numerischer Notation dargestellte Wert ist 027
.
Um den neuen Wert dauerhaft systemweit festzulegen, öffnen Sie /etc/profile
Datei mit Ihrem Texteditor:
sudo nano /etc/profile
und ändern oder fügen Sie die folgende Zeile am Anfang der Datei hinzu:
/etc/profileumask 027
Führen Sie den folgenden source
aus, damit die Änderungen wirksam werden Befehl oder abmelden und anmelden:
source /etc/profile
Um die neuen Einstellungen zu überprüfen, erstellen wir eine neue Datei und ein neues Verzeichnis mit mkdir
und touch
:
mkdir newdir
touch newfile
Wenn Sie die Berechtigungen mit dem ls
überprüfen Befehl, werden Sie feststellen, dass die neue Datei 640
hat und das neue Verzeichnis 750
Berechtigungen, wie wir wollten:
drwxr-x--- 2 linuxize users 4096 Jul 4 18:14 newdir
-rw-r----- 1 linuxize users 0 Jul 4 18:14 newfile
Eine andere Möglichkeit, die Dateierstellungsmaske festzulegen, ist die Verwendung der symbolischen Notation. Zum Beispiel umask u=rwx,g=rx,o=
ist dasselbe wie umask 027
.
Schlussfolgerung #
In dieser Anleitung haben wir die Linux-Berechtigungen und die Verwendung von umask
erklärt Befehl zum Setzen der Berechtigungsbits für neu erstellte Dateien oder Verzeichnisse.
Geben Sie für weitere Informationen man umask
ein in Ihrem Terminal.
Wenn Sie Fragen haben, hinterlassen Sie bitte unten einen Kommentar.