Der chmod
-Befehl wird in Unix-ähnlichen Betriebssystemen verwendet, um die Zugriffsrechte (Lesen, Schreiben und Ausführen) auf Dateien und Verzeichnisse zu ändern. chmod
ist eine Abkürzung für „change mode“.
Syntax
chmod [OPTIONEN] RECHTE FILE...
RECHTE
: Die neuen Zugriffsrechte, die gesetzt werden sollen.FILE...
: Der Pfad zur Datei, die Pfade zu den Dateien oder zum Ordner, dessen Zugriffsrechte geändert werden sollen.
Es gibt verschiedene Möglichkeiten, die RECHTE
zu definieren:
- Symbolisch: Die Zugriffsrechte werden durch Buchstaben und Symbole dargestellt, z.B.
u+rwx
(erlaubt dem Eigentümer, die Datei auszuführen, zu schreiben und zu lesen).- Eigentümer (user): Der Benutzer, der die Datei oder das Verzeichnis erstellt hat, z.B.
chmod u+rwx file.txt
. - Gruppe (englisch, group): Die Gruppe, der der Eigentümer der Datei oder des Verzeichnisses angehört, , z.B.
chmod g+rwx file.txt
- Andere (englisch, others): Alle anderen Benutzer auf dem System, die nicht Eigentümer oder Mitglieder der Gruppe sind, z.B.
chmod o+rwx file.txt
.
- Eigentümer (user): Der Benutzer, der die Datei oder das Verzeichnis erstellt hat, z.B.
- Numerisch: Die Zugriffsrechte werden durch eine Kombination von Zahlen dargestellt, wobei jede Ziffer eine andere Bedeutung hat. Es gibt drei Berechtigungsbits, die für jede Gruppe von Benutzern (Eigentümer, Gruppe, Andere) gesetzt werden können. Zum Beispiel bedeutet
755
, dass der Eigentümer volle Zugriffsrechte hat (7
), aber andere Benutzer nur lesen und ausführen können (5
):- Lesen (
r
= 4) - Schreiben (
w
= 2) - Ausführen (
x
= 1)
- Lesen (
Einige gängige Optionen bei der Verwendung von chmod
sind:
-R
oder--recursive
: Setzt die Zugriffsrechte rekursiv auf alle Dateien und Ordner im angegebenen Pfad.-v
oder--verbose
: Gibt eine Meldung für jede Datei an, deren Zugriffsrechte geändert wurden.-c
oder--changes
: Zeigt nur eine Meldung an, wenn die Zugriffsrechte tatsächlich geändert wurden.
Spezielle Berechtigungen (suid
und sgid
)
Mit chmod
können Sie spezielle Berechtigungen wie suid
(Set User ID) und sgid
(Set Group ID) setzen.
Die suid
– und sgid
-Berechtigungen ermöglichen es einem Programm, temporär mit den Berechtigungen des Eigentümers bzw. der Gruppe des Programms auszuführen, anstatt die des Benutzers, der das Programm ausführt. Die art der Berechtigungen wird bei Programmen verwendet, wie zum Beispiel Systemprogrammen, die normalerweise nur vom Administrator ausgeführt werden dürfen.
chmod u+s dateiname
setzt diesuid
-Berechtigungchmod g+s dateiname
setzt diesgid
-Berechtigung.
Beachte dabei, dass die Verwendung von suid
– und sgid
-Berechtigungen Sicherheitsrisiken birgt und diese Berechtigungen nur für vertrauenswürdige Programme verwendet werden sollten.
$ ls -l testfile
-rwxr-xr-x 1 owner mygroup 1000 Mar 8 10:00 testfile
$ chmod u+s testfile
$ chmod g+s testfile
$ ls -l testfile
-rwsr-sr-x 1 owner mygroup 1000 Mar 8 10:00 testfile
$
Beispiele
Numerisch die Berechtigungen ändern
chmod 644 meineDatei
Mit diesem Befehl werden die Berechtigungen von meineDatei auf rw-r--r--
geändert, was bedeutet, dass der Eigentümer die Datei lesen und schreiben kann, während andere Benutzer die Datei nur lesen können.
$ ls -l meineDatei
-rwxrwxrwx 1 benutzer benutzer 100 Mär 8 16:00 meineDatei
$ chmod 644 meineDatei
$ ls -l meineDatei
-rw-r--r-- 1 benutzer benutzer 100 Mär 8 16:00 meineDatei
$
Symbolisch der Gruppe Schreibrechte erteilen
chmod g+w meineDatei
Hiermit wird der Gruppe, der meineDatei gehört, Schreibzugriff auf die Datei gewährt.
$ ls -l meineDatei
-rw-r--r-- 1 benutzer gruppe 100 Mär 8 16:00 meineDatei
$ chmod g+w meineDatei
$ ls -l meineDatei
-rw-rw-r-- 1 benutzer gruppe 100 Mär 8 16:00 meineDatei
$
Symbolisch der Gruppe Schreibrechte entziehen
chmod g-w meineDatei
Dieser Befehl entzieht der Gruppe, der meineDatei gehört, Schreibzugriff auf die Datei.
$ ls -l meineDatei
-rw-rw-r-- 1 benutzer gruppe 100 Mär 8 16:00 meineDatei
$ chmod g-w meineDatei
$ ls -l meineDatei
-rw-r--r-- 1 benutzer gruppe 100 Mär 8 16:00 meineDatei
$
Symbolisch die Berechtigungen ändern für Eigentümer, Gruppe und Andere in einem Befehl
chmod u=rw,g=r,o=r meineDatei
Durch den Befehl werden die Zugriffsrechte für den Eigentümer („u“ für „user“) auf Lese- und Schreibzugriff („rw“) und für die Gruppe („g“ für „group“) und andere („o“ für „others“) auf Lesezugriff („r“) für ‚meineDatei‘ gesetzt.
$ ls -l meineDatei
-rwxr-xr-x 1 user user 0 Mar 8 14:00 meineDatei
$ chmod u=rw,g=r,o=r meineDatei
$ ls -l meineDatei
-rw-r--r-- 1 user user 0 Mar 8 14:00 meineDatei
$
Direkt den Berechtigungsblock festlegen
chmod =rwxr-xr-x meineDatei
Hiermit werden ebenfalls die Zugriffsrechte für den Eigentümer, die Gruppe und andere auf rwxr-xr-x
für die angegebene Datei.
$ ls -l meineDatei
-rw-r--r-- 1 user user 0 Mar 8 14:00 meineDatei
$ chmod =rwxr-xr-x meineDatei
$ ls -l meineDatei
-rwxr-xr-x 1 user user 0 Mar 8 14:00 meineDatei
$
Links
- https://wiki.ubuntuusers.de/chmod/: Anleitung zur Verwendung von
chmod
in Ubuntu im Ubuntuusers-Wiki. - https://manpages.ubuntu.com/manpages/focal/man1/chmod.1.html: Man-Seite von
chmod
in der Ubuntu-Dokumentation. - https://www.linuxfoundation.org/blog/blog/classic-sysadmin-understanding-linux-file-permissions: Artikel über Linux-Dateiberechtigungen.
- https://www.shellbefehle.de/befehle/chmod/: Seite über den
chmod
-Befehl auf „shellbefehle.de“ mit einer kurzen Beschreibung und Beispielen.