Es ist leicht, das Verhalten jeder Datei- und Verzeichnisberechtigung unter Linux zu vergessen, daher werde ich es zur Erklärung zusammenfassen.
Derjenige, der mit chmod
geändert werden muss
$ ls -l
Sie können die Berechtigungen der Dateien und Verzeichnisse im aktuellen Verzeichnis anzeigen
drwxrwxrwx. 2 core core 4096 Mar 22 11:02 dir
-rwxrwxrwx. 1 core core 0 Mar 22 11:02 file
Gibt an, ob das am meisten versteckte "d" ein Verzeichnis ist. Das "rwx" danach besteht aus 3 Zeichen. Von links nach rechts, Berechtigungen von eigenen Benutzern, Berechtigungen von Gruppen, die zu eigenen Gruppen gehören, Berechtigungen anderer Benutzer Repräsentiert.
r
wird gelesen
w
ist geschrieben
x
läuft
Mit der Autorität von
-rw-r--r--. 1 core core 0 Mar 22 11:05 foo
Wenn es so aussieht wie oben
Für die Datei foo
Ein Benutzer mit dem Namen "core" verfügt über "rw" (Lese- / Schreibrechte).
Gibt an, dass andere Benutzer nur die Berechtigung "r" (Lesen) haben.
Der Root-Benutzer verfügt über alle Berechtigungen ohne Fragen.
Es wird häufig verwendet, wenn Sie eine Datei erstellen möchten, die nur von einem bestimmten Benutzer (Gruppe) gelesen werden soll, oder wenn eine Datei nur von einem bestimmten Benutzer (Gruppe) aktualisiert werden kann.
Wenn Sie eine Datei im Terminal erstellen, erhalten Sie die Berechtigung "0644"
core@dev ~/work $ touch file
core@dev ~/work $ ls -l
total 4
-rw-r--r--. 1 core core 0 Mar 22 11:08 file
core@dev ~/work $ chmod 444 ./file
core@dev ~/work $ ls -l
total 4
-r--r--r--. 1 core core 0 Mar 22 11:08 file
core@dev ~/work $ echo "hogehoge" > file
-bash: file: Permission denied
Wird verwendet, wenn Sie mit Dateien arbeiten, in die nur ein bestimmter Benutzer schreiben soll. Eine Datei, die kaputt geht, wenn Sie sie schlecht schreiben. Ich erhalte eine Warnung, wenn ich versuche, eine Datei zu löschen, für die ich keine Schreibberechtigung habe.
core@dev ~/work $ touch file
core@dev ~/work $ chmod 400 file
core@dev ~/work $ ls -l
total 4
-r--------. 1 core core 0 Mar 22 11:20 file
core@dev ~/work $ rm file
rm: remove write-protected regular empty file 'file'?
core@dev ~/work $ chmod 000 ./file
core@dev ~/work $ ls -l
total 4
----------. 1 core core 0 Mar 22 11:08 file
core@dev ~/work $ cat file
cat: file: Permission denied
Wird verwendet, wenn Sie mit Dateien arbeiten, die nur der Benutzer lesen soll. Beim Umgang mit Informationen einschließlich vertraulicher Informationen.
Berechtigung zum Ausführen der Datei Wird für Skripte und Binärdateien verwendet
Es ist nicht sinnvoll, es nur einer Textdatei zu geben, die nicht ausgeführt werden kann
core@dev ~/work $ echo "hogehoge" > file
core@dev ~/work $ chmod 700 ./file
core@dev ~/work $ ls -l
total 8
-rwx------. 1 core core 9 Mar 22 11:22 file
core@dev ~/work $ ./file
./file: line 1: hogehoge: command not found
Bei Ausführung mit Bash
core@dev ~/work $ echo "echo hogehoge" > file
core@dev ~/work $ chmod 700 ./file
core@dev ~/work $ ls -l
total 8
-rwx------. 1 core core 14 Mar 22 11:22 file
core@dev ~/work $ ./file
hogehoge
Meistens gewährt, damit es als Terminal oder Prozess ausgeführt werden kann
core@dev ~/work $ mkdir foo
core@dev ~/work $ ls -l
total 8
drwxr-xr-x. 2 core core 4096 Mar 22 11:25 foo
Die Standardeinstellung unterscheidet sich bis auf den Anfang von der Datei Es wird "rwxr-xr-x" sein, also im Fall eines Verzeichnisses Eigene Benutzer haben "rwx" -Rechte Andere Benutzer haben "r-x" -Rechte
core@dev ~/work $ mkdir foo
core@dev ~/work $ ls -l
total 8
drwxr-xr-x. 2 core core 4096 Mar 22 11:38 foo
core@dev ~/work $ chmod 500 ./foo/
core@dev ~/work $ ls -l
total 8
dr-x------. 2 core core 4096 Mar 22 11:38 foo
core@dev ~/work $ touch foo/test
touch: cannot touch 'foo/test': Permission denied
Wenn Sie keine Schreibberechtigung haben, können Sie keine Dateien im Verzeichnis ablegen Verwenden Sie diese Option, wenn Sie nach Verzeichnis anstatt nach Datei schützen möchten.
core@dev ~/work $ mkdir foo
core@dev ~/work $ chmod 000 ./foo/
core@dev ~/work $ ls -l foo/
ls: cannot open directory 'foo/': Permission denied
Da auf das Verzeichnis nicht zugegriffen werden kann, kann nicht mit ls
usw. verwiesen werden.
core@dev ~/work $ mkdir foo
core@dev ~/work $ touch foo/bar
core@dev ~/work $ chmod 600 ./foo/
core@dev ~/work $ ls -l foo/
ls: cannot access 'foo/bar': Permission denied
total 0
-????????? ? ? ? ? ? bar
Wenn Sie keine Ausführungsberechtigung für das Verzeichnis haben, haben Sie keinen Zugriff auf die darunter liegenden Dateien.
Daher kann nicht auf die Informationen selbst der Datei zugegriffen werden.
Sie können nicht lesen oder schreiben, da Sie nicht auf die Informationen in der Datei zugreifen können und die Berechtigungen unbekannt sind.
Da Sie Lese- und Schreibberechtigungen für das Verzeichnis haben, können Sie die Verzeichnisberechtigungen mit chmod
umschreiben.