Antworten:
Die chmod
symbolische Notation ist im Vergleich zur oktalen Notation feinkörniger und ermöglicht die Modifikation bestimmter Modusbits, während andere Modusbits unberührt bleiben.
Die symbolische Notation besteht aus drei Komponenten:
chmod [references][operator][modes] file
Das references
besteht aus einer Kombination der Buchstaben ugoa
, die angeben, welcher Benutzerzugriff auf das file
geändert wird: der Benutzer, dem es gehört ( u
), andere Benutzer in der Dateigruppe ( g
), andere Benutzer, die nicht in der Dateigruppe ( o
) sind, oder alle Benutzer ( a
). Wenn die references
Komponente weggelassen wird, werden standardmäßig alle Benutzer verwendet, aber nur die von der Berechtigung zugelassenen Berechtigungen umask
werden geändert.
Dies +
operator
bewirkt, dass die angegebenen Dateimodusbits zu den vorhandenen Dateimodusbits jeder Datei hinzugefügt werden. -
bewirkt, dass sie entfernt werden; und =
bewirkt, dass sie hinzugefügt und nicht spezifizierte Bits entfernt werden, außer setuid
und setgid
Bits, die für Verzeichnisse gesetzt sind, sofern nicht ausdrücklich angegeben.
Das mode
besteht aus einer Kombination der Buchstaben rwxXst
, die dem Lesen ( r
), Schreiben ( w
), Ausführen (oder Suchen nach Verzeichnissen) ( x
), Ausführen / Suchen nur entsprechen, wenn die Datei ein Verzeichnis ist oder bereits Ausführungsberechtigung für einen Benutzer hat ( X
) setuid
oder setgid
(abhängig von den angegebenen Referenzen) ( s
) und eingeschränktes Löschflag oder Sticky Bit ( t
). Alternativ kann die mode
Dose aus einem der Buchstaben bestehen ugo
. In diesem Fall mode
entspricht sie den Berechtigungen, die derzeit dem Eigentümer ( u
), dem Mitglied der Dateigruppe ( g
) oder den Berechtigungen von Benutzern in keiner der vorhergehenden Kategorien ( o
) erteilt wurden .
Beispiele
Angenommen, der Berechtigungssatz für file
ist0764/-rwxrw-r--
Entfernen Sie die Berechtigung von anderen Benutzern, die nicht zur Dateigruppe gehören:
Oktal: chmod 760 file
Beachten Sie, wie die vorhandenen Berechtigungen, die unverändert bleiben, bei Verwendung der Oktalschreibweise wiederholt werden müssen.
Symbolisch: chmod o-rwx file
Bei der symbolischen Notation spielen die vorhandenen Dateiberechtigungen keine Rolle.
Set setuid
:
Oktal: chmod 4764 file
Symbolisch: chmod u+s file
Set setgid
:
chmod 2764 file
chmod g+s file
Mit den Buchstaben können Sie einzelne Bits ein- und ausschalten, ohne die anderen Bits zu ändern.
Angenommen, ich habe das folgende Verzeichnis: drwxrwsr-x 6 f261-01a g261-01a 4096 12. September 17:51 / home / team / 261 / f261-01a
Wenn ich die Leseberechtigung für andere deaktivieren und Zahlen verwenden möchte, kann ich dies möglicherweise schnell tun chmod 751
. Außer ich habe gerade das setgid-Bit im Verzeichnis deaktiviert. Hoppla.
Wenn ich jedoch verwende chmod o-r
, schalte ich nur das gewünschte Lesebit aus und das setgid-Bit im Verzeichnis bleibt gesetzt.
Dies ist auch nützlich, wenn Sie setuid, setgid oder sticky bits in einer Datei oder einem Verzeichnis aktivieren möchten. Besonders wenn Sie es so selten tun, haben Sie Probleme, sich zu erinnern, welches Bit welches im 4. Oktett ist.
Es kommt also darauf an, was Sie tun. Ich bevorzuge es immer noch, Zahlen zu verwenden, wenn ich nur Berechtigungen einstelle, und es ist mir egal, mit was es anfängt. Wenn Sie jedoch einzelne Bits umschalten, ist die Buchstabennotation viel einfacher.