Android

Umask Befehl unter Linux

Quicktipp: Linux Kurzbefehle/Aliase erstellen

Quicktipp: Linux Kurzbefehle/Aliase erstellen

Inhaltsverzeichnis:

Anonim

Unter Linux- und Unix-Betriebssystemen werden alle neuen Dateien mit Standardberechtigungen erstellt. Mit umask Dienstprogramm umask können Sie die Erstellungsmaske für den umask anzeigen oder festlegen, mit der die Berechtigungsbits für neu erstellte Dateien oder Verzeichnisse festgelegt werden.

Es wird von mkdir, touch, tee und anderen Befehlen verwendet, die neue Dateien und Verzeichnisse erstellen.

Linux-Berechtigungen

Bevor wir fortfahren, wollen wir kurz das Linux-Berechtigungsmodell erläutern.

In Linux wird jede Datei einem Eigentümer und einer Gruppe zugeordnet und mit Zugriffsrechten für drei verschiedene Benutzerklassen versehen:

  • der Dateibesitzer. die Gruppenmitglieder. jeder andere.

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.

Verwenden Sie den Befehl ls , um die Dateiberechtigungen anzuzeigen:

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 steht für den Dateityp, bei dem es sich um eine normale Datei ( - ), ein Verzeichnis ( d ), eine symbolische Verknüpfung ( l ) oder einen anderen speziellen Dateityp handeln kann.

Die nächsten neun Zeichen stehen für die Berechtigungen, drei Sätze mit jeweils drei Zeichen. Die ersten Sätze zeigen die Eigentümerberechtigungen, die zweiten Gruppenberechtigungen und der letzte Satz zeigt alle anderen Berechtigungen.

Das Zeichen r mit dem Oktalwert 4 steht für read, w mit dem Oktalwert 2 für write, x mit dem Oktalwert 1 für execute permission und ( - ) mit dem Oktalwert 0 für no permissions.

Es gibt auch drei andere spezielle Dateiberechtigungstypen: setuid , setgid und Sticky Bit .

Im obigen Beispiel ( rwxr-xr-x ) bedeutet, dass der Eigentümer über Lese-, Schreib- und Ausführungsberechtigungen ( rwx ) verfügt, die Gruppe und andere über Lese- und Ausführungsberechtigungen.

Wenn wir die Dateiberechtigungen in numerischer Schreibweise darstellen, erhalten wir die Nummer 755 :

  • Besitzer: rwx = 4+2+1 = 7 Gruppe: rx = 4+0+1 = 5 Andere: rx = 4+0+1 = 5

Bei Darstellung in numerischer Notation können Berechtigungen drei oder vier Oktalstellen (0-7) haben. Die erste Ziffer stellt die speziellen Berechtigungen dar. Wenn sie weggelassen wird, bedeutet dies, dass für die Datei keine speziellen Berechtigungen festgelegt wurden. In unserem Fall ist 755 dasselbe wie 0755 . Die erste Ziffer kann eine Kombination aus 4 für setuid , 2 für setgid und 1 für Sticky Bit .

Dateiberechtigungen können mit dem Befehl chmod und Eigentumsrechte mit dem Befehl chown geändert werden.

Umask verstehen

Standardmäßig sind auf Linux-Systemen die Standarderstellungsberechtigungen 666 für Dateien, die Benutzern, Gruppen und anderen Lese- und Schreibberechtigungen erteilen, und 777 für Verzeichnisse, dh Lese-, Schreib- und Ausführungsberechtigungen für Benutzer, Gruppen und Andere. Unter Linux kann keine Datei mit Ausführungsberechtigungen erstellt werden.

Die Standarderstellungsberechtigungen können mit dem Dienstprogramm umask geändert werden.

umask betrifft nur die aktuelle Shell-Umgebung. Bei den meisten Linux-Distributionen wird der systemweite Standardwert umask in der Datei pam_umask.so oder /etc/profile .

Um den aktuellen umask , geben Sie einfach umask ohne Argumente ein:

umask

Die Ausgabe enthält die

022

Der umask Wert enthält die Berechtigungsbits, die für die neu erstellten Dateien und Verzeichnisse NICHT gesetzt werden.

Wie bereits erwähnt, 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.

Um beispielsweise zu berechnen, wie sich uname 022 auf neu erstellte Dateien und Verzeichnisse auswirkt, verwenden Sie:

  • Dateien: 666 - 022 = 644 . Der Eigentümer kann die Dateien lesen und ändern. Gruppen und andere können nur die Dateien lesen. Verzeichnisse: 777 - 022 = 755 Der Eigentümer kann eine CD in das Verzeichnis einlegen und die Dateien im Verzeichnis auflisten, lesen, ändern, erstellen oder löschen. Gruppe und andere können in das Verzeichnis cd und die Dateien auflisten und lesen.

Sie können den Maskenwert auch in symbolischer Notation anzeigen, indem Sie die Option -S :

umask -S

u=rwx, g=rx, o=rx

Im Gegensatz zur numerischen Notation enthält der Wert für die symbolische Notation die Berechtigungsbits, die für die neu erstellten Dateien und Verzeichnisse festgelegt werden.

Maskenwert einstellen

Die Dateierstellungsmaske kann in oktaler oder symbolischer Schreibweise festgelegt werden. Um die Änderungen dauerhaft zu umask setzen Sie den neuen umask Wert in eine globale Konfigurationsdatei wie /etc/profile , die alle Benutzer ~/.bashrc oder in die Shell-Konfigurationsdateien eines Benutzers wie ~/.profile , ~/.bashrc oder ~/.zshrc betrifft nur den Benutzer. Die Benutzerdateien haben Vorrang vor den globalen Dateien.

umask dem umask des umask Werts sicher, dass der neue Wert kein potenzielles Sicherheitsrisiko darstellt. Werte, die weniger restriktiv als 022 sollten mit größter Vorsicht verwendet werden. Zum Beispiel bedeutet umask 000 , dass jeder umask 000 die Berechtigung zum Lesen, Schreiben und Ausführen für alle neu erstellten Dateien hat.

Angenommen, wir möchten restriktivere Berechtigungen für die neu erstellten Dateien und Verzeichnisse festlegen, damit andere Benutzer nicht in die Verzeichnisse cd und Dateien lesen können. Die Berechtigungen, die wir benötigen, sind 750 für Verzeichnisse und 640 für Dateien.

Um den umask Wert zu berechnen, umask einfach die gewünschten Berechtigungen von der Standardberechtigung:

Umask-Wert: 777-750 = 027

Der gewünschte umask Wert in numerischer Notation ist 027 .

Um den neuen Wert systemweit dauerhaft /etc/profile öffnen Sie die Datei /etc/profile 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 Quellbefehl aus, oder melden Sie sich ab und wieder an, damit die Änderungen wirksam werden:

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

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 zum Festlegen der Dateierstellungsmaske ist die Verwendung der symbolischen Notation. Zum Beispiel ist umask u=rwx, g=rx, o= dasselbe wie umask 027 .

Fazit

In diesem Handbuch haben wir die Linux-Berechtigungen und die Verwendung des umask zum umask der Berechtigungsbits für neu erstellte Dateien oder Verzeichnisse erläutert.

Für weitere Informationen geben Sie man umask in Ihr Terminal ein.

umask terminal