Nachdem ich meine Frage hier beantwortet und einige Nachforschungen über das Ergebnis angestellt hatte, fand ich einen Artikel, der alles sehr gut erklärt. Ich möchte einige Teile dieses Artikels hier für zukünftige Referenzen freigeben.
Berechtigungen anzeigen
Um chmod
die Berechtigungen einer Datei oder eines Verzeichnisses ändern zu können, müssen Sie zunächst den aktuellen Zugriffsmodus kennen. Sie können den Inhalt eines Verzeichnisses im Terminal über cd
dieses Verzeichnis anzeigen und dann Folgendes verwenden:
$ ls -l
Der -l
Schalter ist wichtig, da bei Verwendung ls
ohne nur die Namen der Dateien oder Ordner im Verzeichnis angezeigt werden.
Unten sehen Sie ein Beispiel für die Verwendung ls -l
in meinem Home-Verzeichnis:
total 128
drwxr-xr-x 2 peter users 4096 Jul 5 21:03 Desktop
drwxr-xr-x 6 peter users 4096 Jul 5 17:37 Documents
drwxr-xr-x 2 peter users 4096 Jul 5 13:45 Downloads
drwxr-xr-x 2 peter users 4096 Jun 24 03:36 Movies
drwxr-xr-x 2 peter users 4096 Jun 24 03:38 Music
drwxr-xr-x 2 peter users 4096 Jun 26 00:09 Pictures
-rw-r--r-- 1 peter users 354 Jul 6 17:15 chmodtest
Was bedeuten die Spalten?
Die erste Spalte gibt den Typ jeder Datei an:
-
bezeichnet eine normale Datei.
d
bezeichnet ein Verzeichnis, dh einen Ordner, der andere Dateien oder Ordner enthält.
p
bezeichnet eine Named Pipe (auch FIFO genannt).
l
bezeichnet einen symbolischen Link.
Die Buchstaben danach sind die Berechtigungen. Diese erste Spalte ist das, woran wir am meisten interessiert sind. Die zweite ist, wie viele Links sich in einer Datei befinden. Wir können sie ignorieren. Die dritte Spalte enthält zwei Werte / Namen: Der erste (in meinem Beispiel "Peter") ist der Name des Benutzers, dem die Datei gehört. Der zweite Wert ("Benutzer" im Beispiel) ist die Gruppe, zu der der Eigentümer gehört (Weitere Informationen zu Gruppen).
In der nächsten Spalte wird die Größe der Datei oder des Verzeichnisses in Byte angegeben. Anschließend werden Datum und Uhrzeit der letzten Änderung der Datei oder des Verzeichnisses sowie natürlich der Name der Datei oder des Verzeichnisses angegeben.
Was bedeuten die Berechtigungen?
Die ersten drei Buchstaben nach dem ersten -
oder d
sind die Berechtigungen des Besitzers. Die nächsten drei Buchstaben sind Berechtigungen, die für die Gruppe gelten. Die letzten drei Buchstaben sind die Berechtigungen, die für alle anderen gelten.
Jeder Satz von drei Buchstaben besteht aus r
w
und x
. r
befindet sich immer in der ersten Position, w
befindet sich immer in der zweiten Position und x
befindet sich immer in der dritten Position. r
ist die Leseberechtigung, w
ist die Schreibberechtigung und x
ist die Ausführungsberechtigung. Befindet sich -
an der Stelle eines dieser Buchstaben ein Bindestrich ( ), bedeutet dies, dass die Erlaubnis nicht erteilt wurde. Wenn der Buchstabe vorhanden ist, wird er erteilt.
Ordner
Im Falle von Ordnern können die Modusbits wie folgt interpretiert werden:
r
(read) steht für die Fähigkeit, das Inhaltsverzeichnis des angegebenen Verzeichnisses zu lesen.
w
(Schreiben) steht für die Fähigkeit, das Inhaltsverzeichnis des angegebenen Verzeichnisses zu schreiben (neue Dateien, Ordner erstellen; vorhandene Dateien, Ordner umbenennen, löschen), wenn und nur wenn das Ausführungsbit gesetzt ist. Ansonsten ist diese Erlaubnis bedeutungslos.
x
(execute) steht für die Möglichkeit, mit dem Befehl cd in das angegebene Verzeichnis zu gelangen und auf Dateien und Ordner in diesem Verzeichnis zuzugreifen.
Ändern von Berechtigungen mit dem Befehl chmod
chmod
ist ein Befehl unter Linux und anderen Unix-ähnlichen Betriebssystemen. Hier können Sie die Berechtigungen (oder den Zugriffsmodus) einer Datei oder eines Verzeichnisses ändern.
Sie können Berechtigungen auf zwei verschiedene Arten ändern: - Textbasiert chmod
- Zahlenbasiertchmod
Textmethode
Um den Berechtigungs- oder Zugriffsmodus einer Datei zu ändern, verwenden wir den Befehl chmod in einem Terminal. Nachfolgend finden Sie die allgemeine Struktur des Befehls:
chmod who=permissions filename
Wo Wer ist einer aus einer Reihe von Buchstaben und jeder gibt an, wem Sie die Erlaubnis geben werden. Sie sind wie folgt:
u - The user that owns the file.
g - The group the file belongs to.
o - The other users i.e. everyone else.
a - all of the above - use this instead of having to type ugo.
Die Berechtigungen sind die gleichen wie bereits diskutiert ( r
, w
, und x
).
Mit dem Befehl chmod können Sie Berechtigungen zu einer vorhandenen Menge hinzufügen und von dieser entfernen, indem Sie + oder - anstelle von = verwenden. Dies unterscheidet sich von den oben genannten Befehlen, bei denen die Berechtigungen im Wesentlichen neu geschrieben werden (dh, um eine Berechtigung von r--
in zu ändern rw-
, müssen Sie sie weiterhin r
sowie w
nach =
dem chmod
Befehl in den Befehl einfügen. Wenn Sie dies verpassen, r
wird die r
Berechtigung als entfernt Sie werden mit den Tasten + und - neu geschrieben. Vermeiden Sie dies, indem Sie die aktuellen Berechtigungen hinzufügen oder entfernen.
Zahlenmethode
chmod
Sie können Berechtigungen auch mithilfe von Zahlen festlegen.
Die Verwendung von Zahlen ist eine weitere Methode, mit der Sie die Berechtigungen für alle drei Eigentümer, Gruppen und andere gleichzeitig bearbeiten können. Diese Grundstruktur des Codes lautet:
chmod xxx file/directory
Wobei xxx eine dreistellige Zahl ist, wobei jede Ziffer zwischen 1 und 7 liegen kann. Die erste Ziffer gilt für Berechtigungen für den Eigentümer, die zweite Ziffer für Berechtigungen für die Gruppe und die dritte Ziffer für Berechtigungen für alle anderen.
In dieser Zahlenschreibweise haben die Werte r, w und x einen eigenen Zahlenwert:
r=4
w=2
x=1
Um eine dreistellige Zahl zu erhalten, müssen Sie überlegen, über welche Berechtigungen ein Eigentümer, eine Gruppe und ein Benutzer verfügen sollen, und dann ihre Werte addieren. Angenommen, ich möchte dem Eigentümer eines Verzeichnisses Lese-, Schreib- und Ausführungsberechtigungen erteilen, und ich möchte alle anderen Benutzer gruppieren, um nur Lese- und Ausführungsberechtigungen zu erhalten. Ich würde mit den numerischen Werten wie folgt kommen:
Owner: rwx = 4+2+1=7
Group: r-x = 4+0+1=5 (or just 4+1=5)
Other: r-x = 4+0+1=5 (or just 4+1=5)
Final number = 755
$ chmod 755 filename
Dies entspricht der Verwendung von:
chmod u=rwx filename
chmod go=rx filename
Die meisten Ordner / Verzeichnisse sind auf 755 eingestellt, um das Lesen und Schreiben sowie die Ausführung für den Eigentümer zu ermöglichen, aber das Schreiben für alle anderen zu verweigern, und Dateien sind normalerweise 644, um das Lesen und Schreiben für den Eigentümer zu ermöglichen, beziehen sich jedoch nur auf das Lesen für alle anderen Hinweis zum Fehlen von x-Berechtigungen bei nicht ausführbaren Dateien - hier gilt das Gleiche.