Unix-Datei- und Verzeichnisberechtigungen haben die Form einer 3×3-Struktur. d.h. Drei Berechtigungen (Lesen, Schreiben und Ausführen) sind für drei Arten von Benutzern verfügbar (Eigentümer, Gruppen und andere).
In der Ausgabe des Befehls ls -l werden die 9 Zeichen von der 2. bis zur 10. Position dargestellt die Berechtigungen für die 3 Arten von Benutzern.
-rw-r--r-- 1 sathiya sathiya 272 Mar 17 08:22 test.txt
Im obigen Beispiel:
- Benutzer (sathiya) hat Lese- und Schreibberechtigung
- Gruppe hat Leseberechtigung
- Andere haben Leseberechtigung
Drei Dateiberechtigungen:
- lesen :darf den Inhalt der Datei lesen.
- schreiben :darf in die Datei schreiben.
- Ausführen :darf die Datei als Programm/Skript ausführen.
Drei Verzeichnisberechtigungen:
- lesen :darf den Inhalt des Verzeichnisses lesen (Dateien und Unterverzeichnisse in diesem Verzeichnis anzeigen).
- schreiben :darf in das Verzeichnis schreiben. (Dateien und Unterverzeichnisse in diesem Verzeichnis erstellen)
- Ausführen :darf in dieses Verzeichnis eintreten.
Numerische Werte für die Lese-, Schreib- und Ausführungsberechtigungen:
- lies 4
- schreibe 2
- Führe 1 aus
Um eine Kombination von Berechtigungen zu erhalten, fügen Sie die erforderlichen Zahlen hinzu. Für die Lese- und Schreibberechtigung ist es beispielsweise 4+2 =6.
Datei- und Verzeichnisberechtigungen mit dem Chmod-Befehl ändern
Sie können entweder die oktale Darstellung oder die symbolische Darstellung verwenden, um die Berechtigung einer Datei oder eines Verzeichnisses zu ändern.
Oktaldarstellung für Berechtigungen:
- Die erste Nummer ist für den Benutzer
- Zweite Zahl ist für Gruppe
- Dritte Nummer ist für andere
Geben Sie zum Beispiel read, write ( 4+2 =6 ) an Benutzer und read ( 4 ) an Gruppe und andere.
$ chmod 644 filename
Geben Sie beispielsweise read, execute ( 4 + 1 =5 ) an den Benutzer und read (4 ) an die Gruppe und nichts ( 0 ) an andere.
$ chmod 540 filename
Geben Sie zum Beispiel read, write ( 4 + 2 =6 ) an den Benutzer und nichts ( 0 ) an die Gruppe und read ( 4 ) an andere.
$ chmod 604 filename
Umask 022 ist verantwortlich für die Standardberechtigung einer Datei
Der Standard-umask-Wert ist 0022, der die Standardberechtigung für eine neue Datei oder ein neues Verzeichnis festlegt. Die Standardberechtigung für ein Verzeichnis ist 0777, für Dateien sind die Berechtigungen 0666, von denen der Standard-umask-Wert 0022 abgezogen wird, um die neu erstellten Dateien oder Verzeichnisberechtigungen zu erhalten.
Die endgültige Standardberechtigung für eine Datei wird wie folgt berechnet:
- Standard-Dateiberechtigung:666
- Standard-Umask:022
- Endgültige Standard-Dateiberechtigung:644
Die endgültige Standardberechtigung für ein Verzeichnis wird wie folgt berechnet:
- Standardverzeichnisberechtigung:777
- Standard-Umask:022
- Endgültige Standardverzeichnisberechtigung:755
Sie können den umask-Wert basierend auf der obigen Berechnung auf einen geeigneten Wert ändern, den Sie benötigen. Wenn Sie beispielsweise nicht möchten, dass jemand anderes als der Benutzer (Eigentümer) etwas mit der Datei oder dem Verzeichnis macht, können Sie umask als 0077 angeben.
$ umask 0077
Wenn Sie danach eine Datei oder ein Verzeichnis erstellen, hat es nur Berechtigungen für den Benutzer, wie unten gezeigt:
$ > testfile $ ls -l testfile -rw------- 1 sathiya sathiya 0 Mar 17 08:23 testfile