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.
    • 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)

    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 die suid-Berechtigung
    • chmod g+s dateiname setzt die sgid-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