Linux / Befehl chmod: Datei- und Verzeichnisberechtigungen ändern
chmod ändert die Lese-, Schreib- und Ausführungsrechte von Dateien und Verzeichnissen. Sie können entweder den numerischen Modus oder den symbolischen Modus verwenden, und es ist sicher, die aktuellen Berechtigungen des Ziels zu überprüfen, bevor Änderungen vorgenommen werden.
Berechtigungen gelten separat für den Eigentümer, die Gruppe und andere. Bei regulären Dateien bestimmt das Ausführungsbit, ob sie ausgeführt werden kann, und bei Verzeichnissen steuert das Ausführungsbit, ob der Pfad durchquert werden kann und ob Sie auf den Inhalt innerhalb zugreifen können. Der Befehl zum Ändern des Eigentümers lautet chown.
Grundlegende Syntax
chmod [options] mode file...
Installierte Implementierungen und Optionen können je nach Distribution variieren. Überprüfen Sie die Beschreibung für Ihr aktuelles System mit man chmod.
Beispiele
Hinzufügen der Ausführungsberechtigung im symbolischen Modus
Fügt die Ausführungsberechtigung nur für den Eigentümer hinzu und lässt die anderen Berechtigungen unverändert.
chmod u+x script.sh
Festlegen von Berechtigungen im numerischen Modus
Ermöglicht es dem Besitzer, zu lesen und zu schreiben, und erlaubt der Gruppe und anderen nur das Lesen.
chmod 644 report.txt
Vor und nach den Änderungen prüfen
Überprüfen Sie den Modus der Zieldatei nach dem Ändern der Berechtigungen.
ls -l report.txt chmod go-rwx report.txt ls -l report.txt
Überprüfen Sie, ob die Berechtigungszahlen tatsächlich angewendet wurden.
640 bedeutet Besitzer lesen/schreiben, Gruppe lesen, keine Berechtigungen für andere. Das folgende Beispiel wendet es nur auf eine von Ihnen selbst erstellte Datei an und überprüft es dann mit stat.
printf 'demo\n' > demo.txt chmod 640 demo.txt stat -c '%a %n' demo.txt
Beispielausgabe:
640 demo.txt
Auch wenn chmod selbst erfolgreich ist, wird normalerweise nichts ausgegeben. Bei Verzeichnissen stellt das Ausführungsbit die Betretungs-/Suchberechtigung dar, sodass das mechanische Anwenden derselben Zahlen wie für eine Datei zu Zugriffsproblemen führen kann. Überprüfen Sie den Zielpfad und seine Unterelemente, bevor Sie rekursive Änderungen vornehmen.
Ein numerischer Modus setzt die Berechtigungsbits als Ganzes, während ein symbolischer Modus wie chmod g+w file nur die angeforderten Bits ändert. In einem gemeinsamen Verzeichnis sollten Eigentümer-, Gruppen- und andere Berechtigungen zusammen überprüft werden, und es sollte entschieden werden, ob die Datei wirklich ihr Ausführungsbit benötigt.
Hauptoptionen und Format
| Optionen/Format | Beschreibung |
|---|---|
u/g/o/a |
Bezieht sich auf Eigentümer, Gruppe, andere und alle. |
+ / - / = |
Bezieht sich auf das Hinzufügen, Entfernen oder Zuweisen von Berechtigungen. |
r/w/x |
Bezieht sich auf Lese-, Schreib- und Ausführungsberechtigungen. |
-R |
Rekursiv für Unterverzeichnisse und Dateien ändern. |
--reference=file |
Denselben Modus wie die Referenzdatei anwenden. |
Vorsichtsmaßnahmen bei der Verwendung
chmod -R 777 gewährt allen Benutzern umfassenden Zugriff, daher sollte es nicht aus Bequemlichkeit verwendet werden. Dateien und Verzeichnisse erfordern unterschiedliche Berechtigungen. Bevor rekursive Änderungen durchgeführt werden, überprüfen Sie den Zielbereich mit find oder ls, und beachten Sie auch Zugriffskontrollen über die Standardmodi hinaus, wie ACL und SELinux.
Häufig gestellte Fragen
Was bedeutet chmod 755?
Der Eigentümer hat Lese-, Schreib- und Ausführungsrechte (7), während die Gruppe und andere Lese- und Ausführungsrechte (5) haben. Es hat unterschiedliche Auswirkungen, wenn man es gleichermaßen auf reguläre Dateien und Verzeichnisse anwendet.
Offizielle Dokumentation
Sie können das genaue Verhalten der Optionen und Unterschiede je nach Implementierung in der offiziellen chmod-Dokumentation nachlesen.




