GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Umask-Befehl unter Linux

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 kann cd in das Verzeichnis und listen, lesen, ändern, erstellen oder löschen Sie die Dateien im Verzeichnis. Gruppe und andere können cd 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/profile
umask 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 newdirtouch 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.


Linux
  1. Was ist Umask unter Linux

  2. Linux-mv-Befehl

  3. Linux-Du-Befehl

  4. Linux-IP-Befehl

  5. Linux-cd-Befehl

W-Befehl unter Linux

Bei Befehl unter Linux

Chmod-Befehl unter Linux

Df-Befehl unter Linux

Umask-Befehl unter Linux

Linux-Chmod-Befehlsbeispiele