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

Was ist umask unter Linux?

UMASK in Linux- oder Unix-Systemen ist als Benutzermaske bekannt oder wird auch als Benutzerdateierstellungsmaske bezeichnet. Dies ist eine Basisberechtigung oder Standardberechtigung, wenn eine neue Datei oder ein neuer Ordner auf dem Linux-Computer erstellt wird.

Es wird von mehreren Befehlen in Linux wie mkdir, touch, tee und anderen Befehlen verwendet, die Dateien und Verzeichnisse erstellen. Es wird in jeden einzelnen Schritt einbezogen, wenn eine neue Datei oder ein neues Verzeichnis erstellt wird.

Dateiberechtigungen:

Bevor wir in die Tiefe gehen und umask verstehen, lassen Sie uns zunächst kurz die Dateiberechtigungen verstehen.

Linux ist für seine Sicherheit bekannt. Jede Datei oder jedes Verzeichnis in Linux hat einen bestimmten Satz von Berechtigungen und Eigentumsrechten. Schauen wir uns unten die Benutzerklasse an.

Jeder Datei in Linux sind die folgenden drei Benutzerklassen zugeordnet.

  1. Benutzer – Ein Benutzer, dem die Datei gehört – Standardmäßig gibt dies an, wer die Datei erstellt hat, es sei denn, Sie ändern sie.
  2. Gruppe – Dies zeigt an, dass den Personen in der Gruppe Berechtigungen für die Datei zugewiesen wurden.
  3. Andere – Dies schränkt die anderen Benutzer ein, die nicht der Besitzer oder in der zugewiesenen Gruppe sind.

Für jede der oben genannten Benutzerklassen gibt es drei Arten des Dateizugriffs.

  1. r - Leseberechtigung - die Fähigkeit, den Inhalt der Datei zu lesen
  2. w - Schreibberechtigung - die Fähigkeit, den Inhalt der Datei zu ändern
  3. x - Ausführungserlaubnis - die Fähigkeit, die Datei als Programm auszuführen

Das obige Konzept sagt Ihnen, wer den Dateiinhalt lesen, den Dateiinhalt ändern oder das Programm ausführen darf.

Anzeigeberechtigungen - Symbolischer Modus:

Werfen wir einen Blick auf den Dateibesitz unten. Sie können die Informationen auf Ihrem Linux-Rechner abrufen, indem Sie den Befehl ls -l eingeben.

Das erste Zeichen im obigen Bild zeigt den Dateityp. Unter Linux können verschiedene Dateitypen vorhanden sein (siehe unten).

-   

Gibt die einfache reguläre Datei mit verschiedenen Erweiterungen wie .txt, .json, .sh, .py, .rb usw. an

d

Gibt Verzeichnis/Ordner an

l

Zeigt einen symbolischen Link oder Symlink oder Softlink an

c

Gibt Zeichengerätedatei an

b

Gibt Blockgerätedatei an

Die nächsten neun Symbole sind wie unten in drei Teile unterteilt.

rwx

Der Eigentümer der Datei kann den Inhalt lesen, den Inhalt ändern und die Datei als Programm ausführen

r-x

Mitglieder in der Gruppe „Benutzer“ können den Inhalt lesen und die Datei als Programm ausführen, aber den Dateiinhalt nicht ändern

r-x

Derjenige, der nicht Eigentümer ist, ist auch nicht Mitglied der Gruppe, d. h. andere , kann auch den Inhalt der Datei lesen und die Datei als Programm ausführen, aber den Dateiinhalt nicht ändern

Anzeigeberechtigungen – Numerischer Modus:

Es gibt eine zusätzliche Möglichkeit, Berechtigungen mithilfe von Zahlen darzustellen, die als numerischer Modus bezeichnet werden.

Schauen wir uns das unten stehende numerische Dateiberechtigungsdiagramm an.

  0

---

Keine Berechtigung

1

--x

Nur Ausführungsberechtigung

2

-w-

Nur Schreibberechtigung

3

-wx

Schreib- und Ausführungsberechtigung

4

r--

Nur Leseberechtigung

5

r-x

Lese- und Ausführungsberechtigung

6

rw-

Lese- und Schreibberechtigung

7

rwx

Lese-, Schreib- und Ausführungsberechtigung

Wenn ich auf dieses numerische Berechtigungsdiagramm verweise und es auf dasselbe Verzeichnis anwende, das im obigen Bild erwähnt wird, sieht die Berechtigung wie folgt aus.

rwx

4+2+1

7

r-x

4+0+1

5

r-x

4+0+1

5


Daher lautet die numerische Berechtigung des testdir-Verzeichnisses 755. 

UMASK verstehen:

Lassen Sie uns eine neue Datei und ein neues Verzeichnis erstellen, indem Sie den folgenden Befehl ausführen.

$ touch testfile
$ mkdir testdir

Lassen Sie uns die Berechtigungen von testfile und testdir anzeigen, indem Sie den Befehl ls -l ausführen.

$ls -l

 
Output:
drwxr-xr-x  2 niteshb users    4096 Mar 21 22:43 testdir
-rw-r--r--  1 niteshb users       0 Mar 21 22:43 testfile
 

Hast du die Berechtigungen beachtet? Sie sind anders, oder? Dies liegt an dem standardmäßigen umask-Wert, der auf dem Linux-Computer festgelegt ist.

Standardmäßig ist auf dem Linux-Computer die Standarderstellungsberechtigung für eine Datei 666, die dem Eigentümer, der Gruppe und anderen Lese- und Schreibberechtigungen erteilt, und 777 für ein Verzeichnis, was die Lese-, Schreib- und Ausführungsberechtigung für den Eigentümer, die Gruppe und andere bedeutet Andere.

Wie wir wissen, können Verzeichnisse nicht ausführbar sein. Warum benötigt das Verzeichnis dann eine Ausführungsberechtigung? Nun, die Ausführungsberechtigung für das Verzeichnis besteht darin, den Zugriff auf Inhalte unter dem Verzeichnis zu ermöglichen. Wenn wir den chmod-Befehl verwenden, ändern wir die Berechtigung des Verzeichnisses auf 666 und versuchen, mit dem cd-Befehl in das Verzeichnis zu gelangen, erhalten Sie den Fehler „Berechtigung verweigert“.

Bei den meisten Linux-Distributionen wird der systemweite Standardwert in pam_umask.so oder in der Datei /etc/profile festgelegt. Indem wir den Wert in der Datei ~/.bashrc im Home-Verzeichnis des Benutzers hinzufügen, können wir einen für den Benutzer spezifischen umask-Wert festlegen.

Um den umask-Wert zu überprüfen, führen Sie den umask-Befehl aus.

$umask

Ausgabe:

0022

Wir können die allererste 0 von den obigen vier Zahlen vorerst ignorieren. Es ist ein Teil der erweiterten Berechtigung in Linux. Dadurch kann verhindert werden, dass eine Datei geändert wird, selbst wenn Sie über Schreibberechtigung verfügen, oder wir können verhindern, dass eine Datei gelöscht wird, selbst wenn Sie der Root-Benutzer sind. In diesem Blog werden wir uns nur auf die anderen drei Zahlen konzentrieren.

Um den umask-Wert der aktuellen Sitzung zu ändern, führen Sie den folgenden Befehl gefolgt vom gewünschten Wert aus.

$umask 0044

Wie Dateien und Verzeichnisse ihre Berechtigungen erhalten:

Der mit umask verknüpfte Wert ist NICHT die Berechtigung, die Sie für Ihre Dateien und Verzeichnisse erhalten.

Es gibt eine ganz einfache Rechnung. Wie oben erwähnt, ist der Standardwert für eine Datei 666 und für ein Verzeichnis 777. Um die Berechtigungsbits für neue Dateien oder Verzeichnisse zu berechnen, subtrahieren Sie den umask-Wert vom Standardwert.

Lassen Sie uns beispielsweise berechnen, wie sich eine neue Datei- oder Verzeichnisberechtigung aufgrund von umask auswirkt.

  • Dateien:666 - 022 =644. Je nach Berechtigung kann der Besitzer die Datei lesen und ausführen. Gruppen und andere können die Datei lesen.
  • Verzeichnis:777 - 022 =755. Das bedeutet, dass der Besitzer alle Lese- und Schreibrechte und CDs für das Verzeichnis hat. Gruppe und andere können den Inhalt des Verzeichnisses lesen und auflisten und in das Verzeichnis wechseln.

Sie können den umask-Wert auch in numerischer Form anzeigen, indem Sie den folgenden Befehl ausführen.

$umask

Ausgabe:

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 der /etc/profile-Datei, die alle Benutzer betrifft, oder in den Shell-Konfigurationsdateien eines Benutzers wie ~/.profile, ~/.bashrc oder ~/.zshrc, die wirkt sich nur auf den Benutzer aus. 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. Zum Beispiel umask 000 bedeutet, dass jeder Lese-, Schreib- und Ausführungsberechtigung für alle neu erstellten Dateien hat.

Nehmen wir an, 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 subtrahieren Sie einfach die gewünschten Berechtigungen von den Standardwerten:

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 und ändern oder fügen Sie die folgende Zeile am Anfang der Datei hinzu:

umask 0027

Damit die Änderungen wirksam werden, führen Sie den folgenden Quellbefehl aus oder melden Sie sich ab und wieder an:

$source /etc/profile

Um die neuen Einstellungen zu überprüfen, erstellen wir mit den folgenden Befehlen eine neue Datei und ein neues Verzeichnis.

$mkdir newtestdir
$touch newtestfile

Wenn Sie die Berechtigungen mit dem Befehl ls überprüfen, werden Sie feststellen, dass die neue Datei 640 hat und das neue Verzeichnis 750 Berechtigungen, wie wir wollten:

drwxr-xr--  2 niteshb  users    4096 Mar 21 22:43 newtestdir
-rw-r-----  1 niteshb  users       0 Mar 21 22:43 newtestfile
 

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 den folgenden Befehl in Ihrem Terminal ein.

$man umask

Linux
  1. Was ist ein Linux-Benutzer?

  2. Was ist NFS und wie wird es unter Linux installiert?

  3. Linux – Alles ist eine Datei?

  4. Was ist eine .so.2-Datei?

  5. Was ist eine .so-Datei?

Umask-Befehl unter Linux

Was ist das Linux-Dateisystem? Einfache Anleitung

Was sind Inodes unter Linux?

Was ist eine .bashrc-Datei unter Linux?

Was ist die Datei /etc/passwd unter Linux?

Was ist eine .sh-Datei?