Der Linux-Befehl zum Ändern der Berechtigungen für eine Datei oder ein Verzeichnis lautet chmod, was wir gerne als Dateimodus ändern lesen. chmod hat zwei Betriebsarten:
- symbolischer Modus
- numerischer/oktaler Modus
Um die Berechtigung mit dem Linux-Befehl chmod zu ändern, müssen wir einige Syntax und Regeln befolgen. Wie wir oben besprochen haben, können wir die Berechtigung auf numerische und alphabetische Weise ändern, hier habe ich beide Methoden mit allen Tricks erklärt.
Alphabetisch
Um diese Methode zu verwenden, müssen Sie sich an die folgenden Regeln und Alphabete für die richtige Verwendung erinnern. Um die Berechtigung des Benutzers zu ändern, müssen Sie das Alphabet „u verwenden “. So für die Gruppe „g “ und für andere ist es „o „.
Wie Benutzer, Gruppe und andere müssen wir uns einige Alphabete merken, um Lese-, Schreib- und Ausführungsberechtigungen zu erteilen. Ebenso müssen Sie für die Leseberechtigung das Alphabet „r verwenden “, für Schreiben Sie „w “ und für Ausführen ist es „x „.
Die Formel zum Zuweisen von Berechtigungen mit dem Befehl chmod ist also unten dargestellt:
- u – Benutzer
- g – Gruppe
- o – Andere
- r – Lesen
- w – Schreiben
- x – Ausführen
Wenn Sie beispielsweise Benutzern/Eigentümern Lese- und Schreibberechtigungen und Gruppen und anderen Leseberechtigungen in alphabetischer Reihenfolge erteilen möchten, lautet der Befehl:
# chmod u+rw,g+r,o+r file_name
Numerischer Weg
Um diese Methode zu verwenden, müssen Sie sich an die folgenden Regeln und Nummern für die ordnungsgemäße Verwendung erinnern.
- 4 – Leseberechtigung erteilen
- 2 – Um eine Schreibberechtigung zu erteilen
- 1 – Erteilen der Ausführungserlaubnis
Wenn Sie beispielsweise Benutzern/Eigentümern Lese- und Schreibberechtigungen und Gruppen und anderen Leseberechtigungen auf numerische Weise erteilen möchten, lautet die Befehlsberechnung:
4+2 =6 :Dies fügt dem Benutzer/Eigentümer die Lese- und Schreibberechtigung hinzu.
4 :Dies fügt der Gruppe die Leseberechtigung hinzu.
4 :Dies fügt der anderen die Leseberechtigung hinzu.
Der Befehl wäre also wie folgt:
# chmod 644 filename
Sie können die Berechtigung jeder Datei mit dem folgenden Befehl überprüfen:
# ls -l file.txt -rw-rw-r-- 1 geeklab geeklab 0 Feb 20 06:16 file.txt
Und verwenden Sie den folgenden Befehl, um die Berechtigung eines Verzeichnisses zu überprüfen:
# ls -ld data/ drwxrwxr-x 2 geeklab geeklab 4096 Feb 20 06:18 data/
Hier stellt sich nun die Frage, wie man erkennt, welche Berechtigungen einer Datei oder einem Verzeichnis zugewiesen wurden. Es ist ganz einfach. Oben habe ich zwei Beispiele gegeben. Lassen Sie uns nun die Berechtigung von file.txt identifizieren. Wenn Sie bemerken, dass die Eigenschaften der Datei mit „-rw-rw-r–“ beginnen. Hier können wir erkennen, welche Berechtigung file.txt zugewiesen wurde.
Der Berechtigungsabschnitt ist in 10 Bits unterteilt, von denen
„– ” :Das erste Bit ist dafür verantwortlich zu identifizieren, ob es sich um eine Datei, ein Verzeichnis oder einen symbolischen Link handelt. Siehe die folgenden Symbole:
Wichtige Symbole:
- – :Einer Datei zugewiesene Berechtigung
- d :Einem Verzeichnis zugewiesene Berechtigung
- l :Einem symbolischen Link zugewiesene Berechtigung
- 2., 3., 4. Bit sind für die Erlaubnis des Eigentümers.
- 5., 6., 7. Bit sind für die Erlaubnis der Gruppe.
- 8., 9., 10. Bit sind für die Erlaubnis anderer.
Um einer Datei/einem Verzeichnis die Berechtigung zu erteilen, müssen Sie „+ verwenden „Symbol. Um die Berechtigung von einer Datei/einem Verzeichnis zu entfernen, müssen Sie „– verwenden ” Symbol.
Beispiele für die Verwendung des Befehls chmod
Einer Datei eine Berechtigung zuweisen
Hier habe ich eine Datei namens file.txt. Lassen Sie uns dem Benutzer/Besitzer mit dem Befehl chmod die Lese- und Schreibberechtigung erteilen.
$ chmod u+rw file.txt
$ ls -l file.txt -rw------- 1 geeklab geeklab 0 Feb 20 06:16 file.txt
Verwenden Sie auf numerischem Wege den folgenden Befehl:
$ chmod 600 file.txt
Einem Verzeichnis Berechtigungen zuweisen
Der folgende Befehl kann verwendet werden, um einem Verzeichnis Berechtigungen zu erteilen. Hier habe ich ein Verzeichnis namens data. Lassen Sie uns also dem Benutzer/Eigentümer die volle Berechtigung (Lesen, Schreiben, Ausführen) erteilen. Siehe folgenden Befehl.
$ chmod u+rwx data/
$ ls -ld data/ drwx------ 2 geeklab geeklab 4096 Feb 20 06:18 data/
Zahlweise:
$ chmod 700 data/
Berechtigung von einer Datei/einem Verzeichnis entfernen
Entfernen Sie die Berechtigung von einer Datei/einem Verzeichnis mit dem folgenden Linux-Befehl chmod. Hier entziehe ich dem Benutzer/Eigentümer die Lese- und Schreibberechtigung.
$ chmod u-rw file.txt
$ ls -l file.txt ----rw-r-- 1 geeklab geeklab 0 Feb 20 07:18 file.txt
Jedem die Berechtigung erteilen
Sie können den folgenden Befehl verwenden, um allen die Erlaubnis zu erteilen. Hier weise ich jedem die volle Berechtigung zum Zugriff auf file.txt zu. Es gibt zwei Methoden, um dasselbe zu tun.
Methode 1
$ chmod a+rwx file.txt
$ ls -l file.txt -rwxrwxrwx 1 geeklab geeklab 0 Feb 20 06:44 file.txt
Methode 2
Sie können auch den folgenden Linux-chmod-Befehl verwenden, um dasselbe zu tun.
$ chmod ugo+rwx file.txt
$ ls -l file.txt -rwxrwxrwx 1 geeklab geeklab 0 Feb 20 06:44 file.txt
Zahlweise :
$ chmod 777 file.txt
Weisen Sie Benutzern, Gruppen und anderen unterschiedliche Berechtigungen zu, indem Sie einen einzigen Linux-chmod-Befehl verwenden
Hier entferne ich die Ausführungsberechtigung von Benutzer/Eigentümer und füge der Gruppe und anderen die Ausführungsberechtigung hinzu, indem ich einen einzigen Befehl verwende.
$ chmod u-x,g+x,o+x file.txt
$ ls -l file.txt -rw-rwxrwx 1 geeklab geeklab 0 Feb 20 09:40 file.txt
Geben Sie einer Datei die Berechtigung, indem Sie auf eine andere Datei verweisen
Sie können die Berechtigung von einer Datei in eine andere kopieren. Hier habe ich eine Datei namens a1.txt, deren Berechtigung so etwas wie „-rw-r–r– ist „.
$ ls -l a1.txt -rw-r--r-- 1 geeklab geeklab 0 Feb 20 07:21 a1.txt
Jetzt möchte ich meiner anderen Datei mit dem Namen a2.txt dieselbe Berechtigung zuweisen. Sie können dies mit dem Linux-Befehl chmod mit dem Argument –reference tun. Siehe folgenden Befehl.
$ chmod --reference=a1.txt a2.txt
$ ls -l a2.txt -rw-r--r-- 1 geeklab geeklab 0 Feb 20 07:22 a2.txt
Berechtigung rekursiv zuweisen
Ich habe ein Verzeichnis namens data, in dem ich so viele Dateien habe, und ich möchte allen auf einmal die Berechtigung erteilen, anstatt manuell einzeln. Dazu können Sie den Linux-Befehl chmod mit dem Argument -R verwenden. Dies wird Ihnen helfen, die Erlaubnis rekursiv zu erteilen.
$ chmod -R ugo+rwx data/
Zahlweise :
$ chmod -R 777 data/
Berechtigung mit ausführlicher Ausgabe zuweisen
Sie können eine Ausgabe erhalten, nachdem Sie allen Dateien/Verzeichnissen die Berechtigung zugewiesen haben, indem Sie den Linux-Befehl chmod mit dem Argument -v verwenden. Siehe den folgenden Befehl.
$ chmod -v 777 file.txt mode of 'file.txt' changed from 0664 (rw-rw-r--) to 0777 (rwxrwxrwx)
Erlaubnis der Ausgabe zuweisen (Dieser Befehl gibt nur dann eine Ausgabe aus, wenn es Änderungen gibt)
Der Befehl chmod mit dem Argument -c macht auch dasselbe wie die ausführliche Ausgabe (d. h. -v). Die Ausgabe wird jedoch nur angezeigt, wenn sich die Berechtigung geändert hat. Wenn Sie dieselbe Berechtigung zuweisen, wird keine Ausgabe angezeigt.
$ chmod -c 755 file.txt mode of 'file.txt' changed from 0777 (rwxrwxrwx) to 0755 (rwxr-xr-x)
Zuweisen von Berechtigungen durch Ignorieren/Beheben von Fehlern
Um Fehler zu vermeiden oder Fehler beim Zuweisen von Berechtigungen zu beheben, können Sie den Linux-Befehl chmod mit dem Argument -f verwenden. Siehe den folgenden Befehl.
$ chmod -f 755 file.txt
Hilfe zum chmod-Befehl
Für weitere Optionen und Argumente des chmod-Befehls können Sie den folgenden Befehl verwenden.
$ chmod --help Usage: chmod [OPTION]... MODE[,MODE]... FILE... or: chmod [OPTION]... OCTAL-MODE FILE... or: chmod [OPTION]... --reference=RFILE FILE... Change the mode of each FILE to MODE. With --reference, change the mode of each FILE to that of RFILE. -c, --changes like verbose but report only when a change is made -f, --silent, --quiet suppress most error messages -v, --verbose output a diagnostic for every file processed --no-preserve-root do not treat '/' specially (the default) --preserve-root fail to operate recursively on '/' --reference=RFILE use RFILE's mode instead of MODE values -R, --recursive change files and directories recursively --help display this help and exit --version output version information and exit Each MODE is of the form '[ugoa]*([-+=]([rwxXst]*|[ugo]))+|[-+=][0-7]+'. GNU coreutils online help: [http://www.gnu.org/software/coreutils/] Full documentation at: [http://www.gnu.org/software/coreutils/chmod] or available locally via: info '(coreutils) chmod invocation'
Chmod-Befehlsversion prüfen
Sie können den Linux-Befehl chmod mit dem Argument –version verwenden, um die Version der installierten chmod-Befehlsversion zu überprüfen.
$ chmod --version chmod (GNU coreutils) 8.25 Copyright (C) 2016 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later [http://gnu.org/licenses/gpl.html]. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Written by David MacKenzie and Jim Meyering.