Chmod
Originalautor (en) | AT & T Bell Laboratories |
---|---|
Entwickler (en) | Verschiedene Open Source und kommerziell Entwickler |
Erstveröffentlichung | 3. November 1971 |
Geschrieben in | Plan 9: C |
Betriebssystem | Unix, Unix-artig, Plan 9, Inferno, Ibm i |
Plattform | Plattformübergreifend |
Typ | Befehl |
Lizenz | CoreUtils: GPLV3 Plan 9: MIT -Lizenz |
Im Unix und Unix-artig Betriebssysteme, Chmod ist der Befehl und Systemanruf verwendet, um die zu ändern Zugriffsberechtigungen und die Spezialmodus Flaggen (die setUid, setgid, und klebrig Flaggen) von Dateisystem Objekte (Dateien und Verzeichnisse). Gemeinsam wurden diese ursprünglich seine genannt Modi,[1] und der Name Chmod wurde als Abkürzung von ausgewählt CHAnge Mode.[2]
Geschichte
A Chmod Befehl zuerst erschien in AT&T Unix Version 1 zusammen mit dem Chmod Systemanruf.
Als Systeme wuchsen die Anzahl und Arten von Benutzern, Zugriffskontrolllisten[3] wurden zusätzlich zu diesen grundlegendsten Modi zu vielen Dateisystemen hinzugefügt, um die Flexibilität zu erhöhen.
Die Version von Chmod gebündelt GNU CoreUtils wurde von David Mackenzie und Jim Meyering geschrieben.[4] Der Befehl ist als separates Paket für verfügbar Microsoft Windows Im Rahmen des Unxutils Sammlung von einheimisch Win32 Häfen von gemeinsamen GNU-Unix-ähnlichen Versorgungsunternehmen.[5] Das Chmod Der Befehl wurde auch auf die portiert Ibm i Betriebssystem.[6]
Befehlssyntax
In diesem Abschnitt, user Bezieht sich auf den Eigentümer der Datei, um daran zu erinnern, dass die symbolische Form des Befehls verwendet. "u".
CHMOD [Options] Modus [, Modus] Datei1 [Datei2 ...]
[7]
In der Regel umfassen die implementierten Optionen:
-
-R
Rekursiv, d. H. Einbeziehung von Objekten in Unterverzeichnisse. -
-v
Ausführliche, veränderte Objekte anzeigen (unveränderte Objekte werden nicht gezeigt).
Wenn ein symbolischer Link wird angegeben, das Zielobjekt ist betroffen. Dateimodi, die direkt mit symbolischen Links selbst zugeordnet sind, werden normalerweise nicht verwendet.
Um den Dateimodus anzuzeigen, die ls
oder stat
Befehle können verwendet werden:
$ ls -l findPhonenumbers.sh-Rwxr-XR-- 1 DGERMAN-Mitarbeiter 823 Dez 16 15:03 FindPhonenumbers.sh $ STAT -C %a findPhonenumbers.sh754
Das r
, w
, und x
Geben Sie den Zugriff an, schreiben, schreiben und führen ls Anzeige bezeichnet den Objekttyp; a Bindestrich repräsentiert eine einfache Datei). Das Skript findPhonenumbers.sh kann vom Benutzer gelesen, geschrieben und ausgeführt werden Dgerman; Lesen und ausgeführt von Mitgliedern der Mitarbeiter Gruppe; und nur von anderen Benutzern lesen.
Die Hauptteile der Chmod Berechtigungen:
Zum Beispiel: rwxr-x---
Jede Gruppe von drei Zeichen definiert für jeden Berechtigungen Klasse:
- die drei links die meisten Charaktere,
rwx
Definieren Sie Berechtigungen für die Benutzer Klasse (d. H. Der Dateibesitzer). - die mittleren drei Zeichen,
r-x
Definieren Sie Berechtigungen für die Gruppe Klasse (d. H. Die Gruppe Besitz der Datei) - die meisten drei Charaktere,
---
Definieren Sie Berechtigungen für die Andere Klasse. In diesem Beispiel sind Benutzer, die nicht der Eigentümer der Datei sind und keine Mitglieder der Gruppe (und sind also in der Andere Klasse) haben keine Erlaubnis, auf die Datei zuzugreifen.
Numerische Berechtigungen
Das Chmod Das numerische Format akzeptiert bis zu vier Ziffern. Die drei am weitesten rechts rechtlichen Ziffern definieren Berechtigungen für den Dateibenutzer, die Gruppe und andere. Die optionale führende Ziffer, wenn 4 Ziffern angegeben sind, gibt das Special an setUid, setgid, und klebrig Flaggen. Jede Ziffer der drei rechtlichen Ziffern repräsentiert einen binären Wert, der die Berechtigungen "Lese-", "Schreiben" und "Ausführen" steuert. Ein Wert von 1 bedeutet, dass eine Klasse diese Aktion erlaubt ist, während A 0 bedeutet, dass sie nicht zugelassen ist.
# | Summe | rwx | Genehmigung |
---|---|---|---|
7 | 4 (r) + 2 (w) + 1 (x) | rwx | Lesen, schreiben und ausführen |
6 | 4 (r) + 2 (w) | rw- | lesen und Schreiben |
5 | 4 (r) + 1 (x) | r-x | Lesen und ausführen |
4 | 4 (r) | r-- | schreibgeschützt |
3 | 2 (w) + 1 (x) | -wx | schreiben und ausführen |
2 | 2 (w) | -w- | Nur schreiben |
1 | 1 (x) | --x | nur ausführen |
0 | 0 | --- | keiner |
Zum Beispiel, 754
würde erlauben:
- "lesen" (4), "schreiben" (2) und "ausführen" (1) für die Benutzer Klasse; d.h. 7 (4 + 2 + 1).
- "lesen" (4) und "ausführen" (1) für die Gruppe Klasse; d.h. 5 (4 + 1).
- Nur "lesen" (4) für die Andere Klasse.
Ein numerischer Code ermöglicht die Ausführung, wenn und nur wenn dies der Fall ist seltsam (d.h. 1
, 3
, 5
, oder 7
). Ein numerischer Codegenehmigungen "lesen", wenn und nur wenn er größer ist als oder gleich 4
(d.h. 4
, 5
, 6
, oder 7
). Ein numerischer Code ermöglicht es, wenn und nur dann "Schreiben" zulässt, wenn dies der Fall ist 2
, 3
, 6
, oder 7
.
Numerisches Beispiel
Ändern Sie die Berechtigungen, um Mitgliedern des Programmierer Gruppe zum Aktualisieren einer Datei:
$ ls -l SharedFile-RW-r-R-- 1 JSmith-Programmierer 57 Jul 3 10:13 SharedFile $ Chmod 664 SharedFile$ ls -l SharedFile-RW-rw-r-- 1 JSmith-Programmierer 57 Jul 3 10:13 SharedFile
Seit der setUid, setgid und klebrig Bits sind nicht angegeben, dies entspricht:
$ Chmod 0664 SharedFile
Symbolische Modi
Das Chmod Befehl akzeptiert auch eine feiner körnige symbolische Notation,[8] Dies ermöglicht das Ändern spezifischer Modi, während andere Modi unberührt werden. Der symbolische Modus besteht aus drei Komponenten, die zu einer einzigen Textzeichenfolge kombiniert werden:
$ chmod [Verweise][Operator][Modi] Datei ...
Benutzerklassen werden verwendet, um zu unterscheiden, an die die Berechtigungen gelten. Wenn keine Klassen angegeben sind, ist "alles" impliziert. Die Klassen werden durch einen oder mehrere der folgenden Buchstaben dargestellt:
Bezug | Klasse | Beschreibung |
---|---|---|
u | Benutzer | Dateibesitzer |
g | Gruppe | Mitglieder der Dateigruppe |
o | Andere | Benutzer, die weder der Eigentümer der Datei noch Mitglieder der Gruppe der Datei sind |
a | alle | alle drei oben genannten, wie ugo |
(leer) | Ursprünglich | Gleich wie "alle", außer dass das in der Stücke ist Ummask wird unverändert sein |
Das Chmod Das Programm verwendet einen Bediener, um anzugeben, wie die Modi einer Datei eingestellt werden sollen. Die folgenden Betreiber werden akzeptiert:
Operator | Beschreibung |
---|---|
+ | Fügt die angegebenen Modi den angegebenen Klassen hinzu |
- | Entfernt die angegebenen Modi aus den angegebenen Klassen |
= | Die angegebenen Modi sollen die genauen Modi für die angegebenen Klassen erstellt werden |
Die Modi geben an, welche Berechtigungen aus den angegebenen Klassen erteilt oder entfernt werden sollen. Es gibt drei grundlegende Modi, die den grundlegenden Berechtigungen entsprechen:
Modus | Name | Beschreibung |
---|---|---|
r | lesen | rEad eine Datei oder listen Sie den Inhalt eines Verzeichnisses auf |
w | schreiben | wRitus zu einer Datei oder einem Verzeichnis |
x | ausführen | exECUTE eine Datei oder einen Verzeichnisbaum wieder aufnehmen |
X | Sonderausführung | Das ist keine Erlaubnis für sich, sondern kann anstelle von verwendet werden x. Es wendet Ausführungsberechtigungen für Verzeichnisse unabhängig von ihren aktuellen Berechtigungen an und wendet die Ausführungsberechtigungen für eine Datei an, in der bereits mindestens ein Ausführungsberechtigungsbit festgelegt ist (entweder Benutzer, Gruppe oder Andere). Es ist nur sehr nützlich, wenn es verwendet wird + und normalerweise in Kombination mit dem -R Flagge zum Geben Gruppe oder Andere Zugriff auf einen großen Verzeichnisbaum, ohne die Berechtigung für normale Dateien (z. B. Textdateien) ausführen zu können, was normalerweise auftreten würde, wenn Sie gerade verwendet werden chmod -R a+rx . während X du kannst tun chmod -R a+rX . stattdessen |
s | setUid/gid | |
t | klebrig |
Mehrere Änderungen können angegeben werden, indem mehrere symbolische Modi mit Kommas (ohne Leerzeichen) getrennt werden. Wenn ein Benutzer nicht angegeben ist, Chmod
wird das überprüfen Ummask und der Effekt wird als ob "a"Wurde angegeben, mit Ausnahme von Bits, die in der Ummask festgelegt sind, sind nicht betroffen.[9]
Symbolische Beispiele
- Schreibberechtigung hinzufügen ( w) an die Gruppe ( g) Greifen Sie auf Modi eines Verzeichnisses zu, sodass Benutzer in derselben Gruppe Dateien hinzufügen können:
$ ls -ld Shared_dir # Zugriffsmodi vor CHMOD anzeigen DRWXR-XR-X 2 JSMITT NORTHREGION 96 Apr 8 12:53 SHARED_DIR $ Chmod G+W Shared_dir$ ls -ld Shared_dir # Zugriffsmodi nach CHMOD anzeigen DRWXRWXR-X 2 JSMITT NORTHREGION 96 Apr 8 12:53 SHARED_DIR
- Schreibberechtigungen entfernen ( w) für alle Klassen ( a), verhindern, dass jemand in die Datei schreibt:
$ LS -l OurBestreferencefile-RW-RW-R-- 2 Tmiller Northregion 96 Apr 8 12:53 OurBestreferencefile $ CHMOD A-W OurBestreferencefile$ LS -l OurBestreferencefile-R- R-R-- 2 Tmiller Northregion 96 Apr 8 12:53 OurBestreferencefile
- Setzen Sie die Berechtigungen für die user und die Gruppe ( ug) zu lesen und auszuführen ( rx) nur (keine Schreibberechtigung) auf ReferenzVerhindern, dass jemand Dateien hinzufügen.
$ ls -ld ReferencelibDRWXR ----- 2 EBOWMAN NORTHREGION 96 Apr 8 12:53 Referencelib $ Chmod ug=RX Referencelib$ ls -ld ReferencelibDR-XR-X --- 2 EBOWMAN NORTHREGION 96 Apr 8 12:53 Referencelib
- Fügen Sie den Benutzer- und Gruppenklassen einer Datei oder eines genannten Verzeichnisse Probe:
$ chmod ug+rw probe$ LS -LD -ProbeDRW-RW ---- 2 Rsanchez Budget 96 Dez 8 12:53 Probe
- Entfernen Sie alle Berechtigungen, sodass niemand die benannte Datei lesen, schreiben oder ausführen kann Probe bis kein nützliches Ende.
$ CHMOD A-RWX-Probe$ LS -l -Probe---------- 2 RSWven Planung 96 Dez 8 12:53 Probe
- Ändern Sie die Berechtigungen für den Benutzer und die Gruppe, nur zu lesen und auszuführen (keine Schreibberechtigung) Probe.
$ # Beispielberechtigungen vor dem Befehl $ LS -LD -ProbeDRW-RW ---- 2 Oschultz Warehousing 96 Dez 8 12:53 NY_DBS $ Chmod ug=RX -Probe$ LS -LD -ProbeDR-XR-X --- 2 Oschultz Warehousing 96 Dez 8 12:53 NJ_DBS
Spezielle Modi
Das Chmod Der Befehl kann auch die zusätzlichen Berechtigungen oder Sondermodi einer Datei oder eines Verzeichnisses ändern. Die symbolischen Modi verwenden 's'um die darzustellen setUid und setgid Modi und 't'um die darzustellen klebrig Modus. Die Modi werden nur auf die entsprechenden Klassen angewendet, unabhängig davon, ob andere Klassen angegeben sind oder nicht.
Die meisten Betriebssysteme unterstützen die Spezifikation von Spezialmodi numerisch, insbesondere in Oktal, einige jedoch nicht. Auf diesen Systemen können nur die symbolischen Modi verwendet werden.
Beispiele für Befehlszeilen
Befehl | Erläuterung |
---|---|
CHMOD A+R PublicComentments.txt | Fügt die lesende Berechtigung für alle Klassen hinzu (d. H. user, Gruppe und Andere)) |
CHMOD A-X PublicComentments.txt | Entfernt die Ausführung der Erlaubnis für alle Klassen |
chmod a+rx Viewer.sh | Fügt Lesen und Ausführen von Berechtigungen für alle Klassen hinzu |
chmod u = rw, g = r, o = interalplan.txt | Sets lesen und schreiben Erlaubnis für user, Sets lesen für Gruppe, und verweigert den Zugang für Andere |
chmod -r u+w, go -w docs | Fügt dem Verzeichnis eine Schreibberechtigung hinzu Dokumente und alle seine Inhalte (d. H. Recursiv) für den Eigentümer und beseitigt die Schreibberechtigung für Gruppen und andere |
chmod ug = rw GroupAgreements.txt | Sets lesen und schreiben Berechtigungen für user und Gruppe |
CHMOD 664 Global.txt | Sets lesen und schreiben Berechtigungen für user und Gruppe, und lesen las zu Andere. |
CHMOD 744 Show_Mycv.sh | Sets Lesen, Schreiben und Führen von Berechtigungen für userund legt die Erlaubnis für die Erlaubnis für Gruppe und Andere |
CHMOD 1755 findReslts.sh | Setzt Sticky Bit, setzt Leser-, Schreib- und Ausführungsberechtigungen für den Eigentümer und setzt die Leser und Ausführung von Berechtigungen für Gruppen und andere (dies deutet darauf hin, dass das Skript im Speicher aufbewahrt wird). |
CHMOD 4755 setCtrls.sh | Sets Uid, Sets Lesen, Schreiben und Ausführen von Berechtigungen für userund setzt Lesen und Führen Berechtigungen für Gruppe und Andere |
CHMOD 2755 setCtrls.sh | Sets Gid, Sets Lesen, Schreiben und Ausführen von Berechtigungen für userund setzt Lesen und Führen Berechtigungen für Gruppe und Andere |
CHMOD -r U+RWX, G-RWX, O-RX Personalstuff | Recursiv (d. H. In allen Dateien und Verzeichnissen in persönliche Sachen) Fügt Lesen, Schreiben und Sonderausführungsberechtigungen für hinzu user, entfernt Lesen, Schreiben und Ausführungsberechtigungen für Gruppe, und entfernt Les- und Ausführungsberechtigungen für Andere |
CHMOD -r A -X+X Publicdocs | Recursiv (d. H. In allen Dateien und Verzeichnissen in Publicdocs) Entfernt die Ausführung der Berechtigung für alle Klassen und fügt eine spezielle Ausführungsgenehmigung für alle Klassen hinzu |
Siehe auch
- Dateisystemberechtigungen
-
Chattr
, der Befehl zum Ändern der Attribute einer Datei oder eines Verzeichnisses auf Linux -Systemen -
Chown
, der Befehl, mit dem der Eigentümer einer Datei oder eines Verzeichnisses auf UNIX-ähnlichen Systemen geändert wurde -
chgrp
, der Befehl, mit dem die Gruppe einer Datei oder eines Verzeichnisses auf UNIX-ähnlichen Systemen geändert wurde -
CaCls
, ein Befehl auf Windows NT und seine Derivate, um die Zugriffskontrolllisten zu ändern, die einer Datei oder einem Verzeichnis zugeordnet sind Attraktivität
-
Ummask
, begrenzt den Modus (Berechtigungen) bei der Datei- oder Verzeichniserstellung auf UNIX-ähnlichen Systemen - Benutzerkennung
- Gruppenkennung
- Liste der UNIX -Befehle
Verweise
- ^ Die Modi/Berechtigungen werden angezeigt, wenn Dateien auflisten im langen Format.
- ^ "Tutorial für Chmod". Catcode.com.
- ^ "AIX 5.3 Systemmanagement". IBM Knowledge Center. IBM. Abgerufen 30. August 2015.
- ^ "Chmod (1): Ändern der Dateimodus -Bits - Linux Man Page". Linux.die.net.
- ^ "Native Win32 -Ports einiger GNU -Dienstprogramme". Unxutils.SourceForge.net.
- ^ IBM. "IBM System I Version 7.2 Programmierung Qshell" (PDF). Abgerufen 5. September 2020.
- ^ "CHMOD MAN -Seite mit Beispielen und Taschenrechner - Linux - SS64.com". SS64.com.
- ^ "AIX 5.5 -Befehle Referenz". IBM Knowledge Center. IBM. Abgerufen 30. August 2015.
- ^ "Berechtigungsmaskierung mit Ummask, Chmod, 777 Oktalberechtigungen". lehre.idallen.com.
Externe Links
- Freebsd Allgemeine Befehle Handbuch : Dateimodi ändern -
- Plan 9 Programmierhandbuch, Volume 1 - -
- Inferno Allgemeine Befehle Handbuch - -
-
Chmod
- Manuelle Seite von GNU CoreUtils. - GNU "Einstellungsberechtigungen" Handbuch
- Chmod-Win 3.0 - Freeware Windows 'ACL ↔ Chmod Converter.
- Anfänger-Tutorial mit Online-Beispiel "Live"