Linux chmod-Befehl

Linux 命令大全Linux-Befehlsenzyklopädie

Der Linux-Befehl chmod (englische Vollschreibweise: change mode) ist ein Befehl, der die Benutzerberechtigungen für Dateien steuert.

chmod (change mode) ist ein Befehl in Linux-Systemen, mit dem die Berechtigungen von Dateien oder Verzeichnissen geändert werden. Er steuert die Zugriffsberechtigungen des Dateieigentümers, der besitzenden Gruppe und anderer Benutzer auf die Datei.

Nur der Dateieigentümer und der Superuser können die Berechtigungen einer Datei oder eines Verzeichnisses ändern.

Linux/Unix-Dateizugriffsberechtigungen sind in drei Ebenen unterteilt: Dateieigentümer (Owner), Benutzergruppe (Group) und andere Benutzer (Other Users).

Sie können den absoluten Modus (oktalen numerischen Modus) und den symbolischen Modus verwenden, um Dateiberechtigungen festzulegen.

Berechtigung zur Verwendung: Alle Benutzer

Syntax

chmod [选项] 权限模式 文件...
chmod [选项] --reference=参考文件 文件...

Häufige Optionen

  • -c : Zeigt die Änderungsaktion nur an, wenn die Dateiberechtigung tatsächlich geändert wurde
  • -f : Keine Fehlermeldungen anzeigen, wenn die Dateiberechtigungen nicht geändert werden können
  • -v : Detaillierte Informationen zu Berechtigungsänderungen anzeigen
  • -R : Dieselben Berechtigungsänderungen auf alle Dateien und Unterverzeichnisse im aktuellen Verzeichnis anwenden (d. h. sie rekursiv nacheinander ändern)
  • --help : Hilfeinformationen anzeigen
  • --version : Version anzeigen

mode : Berechtigungseinstellungszeichenfolge, das Format ist wie folgt:

Berechtigungsmodi

1. Symbolischer Modus (ugoa+/- Berechtigung)

[ugoa...][[+-=][rwxX]...][,...]

Wobei:

  • u steht für den Besitzer der Datei, g steht für diejenigen, die derselben Gruppe wie der Dateibesitzer angehören, o steht für andere und a steht für alle drei.
  • + bedeutet Berechtigung hinzufügen, - bedeutet Berechtigung entfernen, = bedeutet Berechtigung eindeutig festlegen.
  • r bedeutet lesbar, w bedeutet schreibbar, x bedeutet ausführbar, X bedeutet nur, wenn die Datei ein Unterverzeichnis ist oder die Datei bereits als ausführbar gesetzt wurde.

Im symbolischen Modus können mehrere Elemente festgelegt werden: who (Benutzertyp), Operator und Berechtigung. Die Einstellungen der einzelnen Elemente können durch Kommas getrennt werden.

Der Befehl chmod ändert die Zugriffsberechtigungen für die durch who angegebenen Benutzertypen. Der Benutzertyp wird durch einen oder mehrere Buchstaben an der who-Position angegeben, wie in der who-Symbolmodus-Tabelle dargestellt:

who Benutzertyp Beschreibung
u user Dateieigentümer
g group Gruppe des Dateieigentümers
o Andere Alle anderen Benutzer
a all Alle Benutzer, äquivalent zuugo

Symbolische Modustabelle für Operator:

Operator Beschreibung
+ Berechtigung für den angegebenen Benutzertyp hinzufügen
- Berechtigung vom angegebenen Benutzertyp entfernen
= Berechtigungen für den angegebenen Benutzertyp festlegen, d. h. alle Berechtigungen des Benutzertyps zurücksetzen

Berechtigungstypen:

Mode Name Beschreibung
r read Als lesbare Berechtigung festlegen
w write Als schreibbare Berechtigung festlegen
x Ausführungsberechtigung Als ausführbare Berechtigung festlegen
X Spezielle Ausführungsberechtigung Die Dateiberechtigung nur dann als ausführbar setzen, wenn die Datei eine Verzeichnisdatei ist oder wenn andere Benutzertypen Ausführungsberechtigung haben
s setuid/gid Wenn die Datei ausgeführt wird, die setuid- oder setgid-Berechtigung der Datei gemäß dem durch den who-Parameter angegebenen Benutzertyp setzen
t Sticky-Bit Das Sticky-Bit setzen. Nur der Superuser kann dieses Bit setzen, und nur der Dateieigentümer u kann dieses Bit verwenden.

2. Oktalsyntax

Der chmod-Befehl kann Oktalzahlen verwenden, um Berechtigungen anzugeben.

Number Berechtigung
4 Lesen (r)
2 Schreiben (w)
1 Ausführen (x)

Kombination:

  • Berechtigung des Eigentümers (erste Ziffer)
  • Berechtigung der Gruppe (zweite Ziffer)
  • Berechtigung anderer Benutzer (dritte Ziffer)

Gängige Kombinationen:

  • 755: rwxr-xr-x
  • 644: rw-r--r--
  • 700: rwx------

Die Berechtigungsbits einer Datei oder eines Verzeichnisses werden durch 9 Berechtigungsbits gesteuert, wobei jede Gruppe von drei Bits die Lese-, Schreib- und Ausführungsberechtigungen des Dateieigentümers (User), die Lese-, Schreib- und Ausführungsberechtigungen der Gruppe (Group) und die Lese-, Schreib- und Ausführungsberechtigungen anderer Benutzer (Other) darstellt.

# Berechtigung rwx Binary
7 Lesen + Schreiben + Ausführen rwx 111
6 Lesen + Schreiben rw- 110
5 Lesen + Ausführen r-x 101
4 Nur Lesen r-- 100
3 Schreiben + Ausführen -wx 011
2 Nur Schreiben -w- 010
1 Nur Ausführen --x 001
0 Keine --- 000

Zum Beispiel würde 765 wie folgt interpretiert:

  • Die Berechtigung des Eigentümers wird in Zahlen ausgedrückt: die Summe der Ziffern der drei Berechtigungsbits des Eigentümers. Zum Beispiel bedeutet rwx 4+2+1, was 7 ergeben sollte.
  • Die Berechtigung der Gruppe wird in Zahlen ausgedrückt: die Summe der Ziffern der Berechtigungsbits der Gruppe. Zum Beispiel bedeutet rw- 4+2+0, was 6 ergeben sollte.
  • Die Berechtigung anderer Benutzer wird in Zahlen ausgedrückt: die Summe der Ziffern der Berechtigungsbits anderer Benutzer. Zum Beispiel bedeutet r-x 4+0+1, was 5 ergeben sollte.

Beispiele

file1.txt für alle lesbar machen:

chmod ugo+r file1.txt

file1.txt für alle lesbar machen:

chmod a+r file1.txt

file1.txt und file2.txt so einstellen, dass der Dateieigentümer und die Mitglieder derselben Gruppe schreiben können, andere jedoch nicht schreiben können:

chmod ug+w,o-w file1.txt file2.txt

Ausführungsberechtigung für den Besitzer der Datei ex1.py hinzufügen:

chmod u+x ex1.py

Alle Dateien und Unterverzeichnisse im aktuellen Verzeichnis für alle lesbar machen:

chmod -R a+r *

Darüber hinaus kann chmod auch Zahlen verwenden, um Berechtigungen darzustellen, z. B.:

chmod 777 file

Die Syntax lautet:

chmod abc file

Dabei sind a, b, c jeweils eine Zahl, die die Berechtigungen von Benutzer, Gruppe und Andere darstellen.

r=4,w=2,x=1

  • Für rwx-Attribute gilt: 4+2+1=7;
  • Für die Attribute rw- gilt: 4+2=6;
  • Für die Attribute r-x gilt: 4+1=5.
chmod a=rwx file

und

chmod 777 file

Die Wirkung ist dieselbe

chmod ug=rwx,o=x file

und

chmod 771 file

Die Wirkung ist dieselbe

Bei Verwendung vonchmod 4755 filenamekann dies dem Programm Root-Rechte verleihen.

Weitere Hinweise

Befehl Beschreibung
chmod a+r file Leseberechtigung für alle Benutzer für file hinzufügen
chmod a-x file Ausführungsberechtigung für alle Benutzer für file entfernen
chmod a+rw file Lese- und Schreibberechtigungen für alle Benutzer für file hinzufügen
chmod +rwx file Lese-, Schreib- und Ausführungsberechtigungen für alle Benutzer für file hinzufügen
chmod u=rw,go= file Lese- und Schreibberechtigung für den Eigentümer von file festlegen und alle Berechtigungen für die Gruppe und andere Benutzer für file entfernen (ein Leerzeichen steht für keine Berechtigung)
chmod -R u+r,go-r docs Leseberechtigung für den Benutzer für alle Dateien im Verzeichnis docs und seiner Unterverzeichnis-Hierarchie hinzufügen und die Leseberechtigung für die Gruppe und andere Benutzer entfernen
chmod 664 file Setze die Lese- und Schreibberechtigung für den Eigentümer und die Gruppe der Datei und setze die Leseberechtigung für andere Benutzer
chmod 0755 file Äquivalent zuu=rwx (4+2+1),go=rx (4+1 & 4+1)。0Kein spezieller Modus.
chmod 4755 file 4Das set-user-ID-Bit ist gesetzt, und der Rest ist äquivalent zu u=rwx (4+2+1), go=rx (4+1 & 4+1).
find path/ -type d -exec chmod a-x {} \; Entferne die Ausführungsberechtigung für alle Benutzer für path/ und alle seine Verzeichnisse (Dateien ausgenommen); verwende '-type f', um Dateien abzugleichen.
find path/ -type d -exec chmod a+x {} \; Erlaube allen Benutzern, das Verzeichnis path/ zu durchsuchen oder zu durchqueren

Linux 命令大全Linux-Befehlsenzyklopädie

Weitere Erweiterungen