GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So ändern Sie Berechtigungen in Linux

Unter Linux und Unix beginnt die Sicherheit mit Dateiberechtigungen. Auf einer sehr grundlegenden Ebene spielen Datei- und Verzeichnisberechtigungen eine entscheidende Rolle für die Sicherheit eines Systems. Wenn Sie eine Datei oder ein Verzeichnis auf Linux-Systemen erstellen, werden diese mit Standardberechtigungen geliefert.

Die Dateiberechtigungen werden auf drei Ebenen angewendet:dem owner , group members und others . Der Befehl chmod wird unter Linux verwendet, um diese Berechtigungen zu ändern.

In diesem Tutorial werden wir besprechen, wie Sie Dateiberechtigungen in Linux mit dem Befehl chmod ändern.

1) Berechtigungen mit numerischer (oktaler) Methode ändern

Berechtigungen (Zugriffsmodi) können mit dem Befehl chmod geändert werden, indem einige Operatoren (-, + oder =) verwendet werden, um Berechtigungen (r, w oder x) einem bestimmten Benutzer (u, g, o oder a) zuzuweisen. Der Befehl akzeptiert entweder numerische (oktale) oder symbolische Angaben zum Zugriffsmodus.

Die numerische Methode ist die am häufigsten verwendete Methode zum Festlegen von Berechtigungen für Dateien und Verzeichnisse. Geben Sie dazu chmod numeric_permission filename ein .

Jede Berechtigung wird durch eine Zahl dargestellt und die Berechtigung für eine bestimmte Entität wird schließlich durch einen Satz von drei Spalten dargestellt.

Im obigen Diagramm

Dem 'Benutzer' wird (4 2 1 ) die Berechtigung gegeben, wo der Benutzer lesen, schreiben und ausführen darf.

Die 'Gruppe' erhält (4 2 0) die Berechtigung, wo Gruppenmitglieder lesen und schreiben können.

Dem 'Anderen (Welt)' wird (4 0 0) die Erlaubnis gegeben, wo andere nur lesen können.

Bei der numerischen Methode werden alle Berechtigungen auf einmal geändert.

Zum Beispiel

755 :Lese-, Schreib- und Ausführungsberechtigung für den user festlegen , legen Sie die Lese- und Ausführungsberechtigung für die group fest und setzen Sie die Lese- und Ausführungsberechtigung für others .

# chmod 755 asciiquarium.tar.gz
# ls -l asciiquarium.tar.gz 
-rwxr-xr-x 1 linoadmin linoadmin 15436 Mar 9 2013 asciiquarium.tar.gz

476 :Nur Leseberechtigung für den user festlegen , legen Sie die Lese-, Schreib- und Ausführungsberechtigung für die group fest und setzen Sie die Lese- und Schreibberechtigung für die others .

# chmod 476 bootstrap
# ls -l bootstrap
-r--rwxrw- 1 root root 5747 Apr 25 01:45 bootstrap

500 :Lese- und Ausführungsberechtigung für user festlegen , legen Sie keine Berechtigungen für die group fest und keine Berechtigungen für die others setzen .

# chmod 500 asciiquarium_1.1/
# ls -ld asciiquarium_1.1/
dr-x------ 2 linoadmin linoadmin 4096 Mar 9 2013 asciiquarium_1.1/

Wenn Sie die numerische Methode verwenden, sollten Sie immer drei Werte angeben (Eigentümer, Gruppe und andere).

2) Berechtigungen im symbolischen Modus ändern

Der numerische Zugriffsmodus wird von den meisten Linux-Benutzern bevorzugt. Einige Leute ziehen es jedoch vor, symbolische Formen zu verwenden, weil sie normalerweise einen bestehenden Modus modifizieren, anstatt ihn vollständig zu ersetzen.

Der symbolische Modus wird als chmod entity=permissions filename verwendet . Symbolische Modusspezifikationen bestehen aus drei Teilen, die aus einzelnen Zeichen bestehen und einen Buchstaben verwenden, um den Teil zu identifizieren:

  • Entity :Benutzerbesitzer =u , Gruppenbesitzer =g , andere =o , und alle =a
  • Operation :+ hinzufügen, - zu entfernen oder = zuzuweisen (die anderen vorhandenen Berechtigungen zu entfernen)
  • Permissions to set :r =lesen, w =schreiben und x =ausführen

Einige Beispiele zum besseren Verständnis.

chmod +x  :Ausführungsberechtigung für alle Entitätsbenutzer, Gruppen und andere hinzufügen. Es wird verwendet, um ein Skript oder ein Programm ausführbar zu machen, um es auszuführen

# chmod +x hello.sh
# ls -l hello.sh 
-rwxr-xr-x 1 root root   66 May 15 20:12 hello

Jetzt können Sie Ihr Skript wie folgt ausführen

# ./hello 
Hello... How are you ?

u+x :Ausführungsberechtigung nur für den Benutzer hinzufügen

# chmod u+x backupdb.sh
# ls -l backupdb.sh 
-rwxr--r-- 1 linoadmin linoadmin 15436 Mar 9 2013 backupdb.sh

go-w :Nur der Gruppe und anderen Klassen die Schreibberechtigung entziehen.

# chmod go-w script-test/
# ls -ld script-test/
drwxr-xr-x 3 root root 4096 Apr 25 02:21 script-test/

a=rw :Legen Sie Lese- und Schreibberechtigungen fest, aber keine Ausführungsberechtigungen für alle.

# chmod a=rw bootstrap
# ls -l bootstrap
-rw-rw-rw- 1 root root 5747 Apr 25 01:45 bootstrap

g-x,o-rx :Ausführungsberechtigung für group entfernen und entfernen Sie die Lese- und Ausführungsberechtigung für other .

Hinweis:Verwenden Sie nach dem Komma kein Leerzeichen (, )

# chmod g-x,o-rx baba/

Lassen Sie uns die Berechtigung mit dem Befehl ls überprüfen:

# ls -ld baba/
drwxr----- 2 root root 4096 Apr 13 01:35 baba/

Wenn Sie die symbolische Methode verwenden, ist es möglich, Kombinationen zu machen, um einige Entitäten gleichzeitig zu manipulieren.

Denken Sie daran, dass bei Verwendung des symbolischen Modus die Berechtigungen, die Sie nicht angeben, so bleiben, wie sie vor der Ausführung des chmod-Befehls

waren

3) Berechtigungen rekursiv ändern

Wenn Sie den Befehl chmod für ein Verzeichnis ohne Option verwenden, wirkt sich dies nicht auf die Berechtigungen für seine Unterverzeichnisse aus. Das bedeutet, dass die Berechtigungen nur auf das Verzeichnis selbst angewendet werden.

Um die Berechtigungen eines Verzeichnisses mit seinen Unterverzeichnissen (rekursiv) zu ändern, können wir -R verwenden Option.

Sehen Sie sich zum Beispiel unser Verzeichnis „asciiquarium_1.1“ an, auf das wir 500 angewendet haben Berechtigungen.

Wenn wir die Berechtigung für Dateien und Verzeichnisse im Verzeichnis „asciiquarium_1.1“ auflisten, können wir sie nicht auf „500“ setzen.

# ls -l asciiquarium_1.1/
total 60
-rw-rw-r-- 1 linoadmin linoadmin 27679 Mar  9  2013 asciiquarium
-rw-rw-r-- 1 linoadmin linoadmin   228 Mar  9  2013 CHANGES
-rw-rw-r-- 1 linoadmin linoadmin 18092 Mar  9  2013 gpl.txt
-rw-rw-r-- 1 linoadmin linoadmin    45 Mar  9  2013 MANIFEST
-rw-rw-r-- 1 linoadmin linoadmin  1060 Mar  9  2013 README

Lassen Sie uns nun chmod -R verwenden Befehl mit denselben Berechtigungen für das Verzeichnis „asciiquarium_1.1“ mithilfe des folgenden Befehls:

# chmod -R 500 asciiquarium_1.1/

Lassen Sie uns nun die Berechtigung für Dateien und Verzeichnisse wie folgt überprüfen:

# ls -l asciiquarium_1.1/
total 60
-r-x------ 1 linoadmin linoadmin 27679 Mar  9  2013 asciiquarium
-r-x------ 1 linoadmin linoadmin   228 Mar  9  2013 CHANGES
-r-x------ 1 linoadmin linoadmin 18092 Mar  9  2013 gpl.txt
-r-x------ 1 linoadmin linoadmin    45 Mar  9  2013 MANIFEST
-r-x------ 1 linoadmin linoadmin  1060 Mar  9  2013 README

Sie können sehen, dass Berechtigungen für Dateien und Unterverzeichnisse festgelegt wurden.

4) Spezielle Bitberechtigungen

Die meisten Aufgaben, die Sie mit Berechtigungen erledigen, betreffen die Lese-, Schreib- und Ausführungsberechtigungen. Es gibt jedoch mehrere andere spezielle Berechtigungen, die Sie Dateien und Verzeichnissen in Ihrem Dateisystem zuweisen können. Auf diese Sonderberechtigungen wird als zusätzliche Ziffer verwiesen, die am Anfang des Datei- oder Verzeichnismodus hinzugefügt wird.

Die folgenden speziellen Bits sind für die Verwendung des Linux-Dateisystems verfügbar:

  • SUID :Die Berechtigung "Benutzer-ID festlegen" ermöglicht es Benutzern, ein Programm auszuführen, als ob sie der Benutzereigentümer des Programms wären; In den meisten Fällen ist der Benutzerbesitzer der Root-Benutzer. Der numerische Wert dieses Berechtigungssatzes ist 4XXX (wobei „XXX“ durch die numerischen Werte für den zuvor erwähnten Dreiersatz ersetzt wird).
  • SGID :Wenn die Berechtigung "Gruppen-ID festlegen" auf ein Verzeichnis gesetzt wird, überträgt sie automatisch die Gruppeneigentümerschaft aller neuen Dateien, die im Verzeichnis erstellt werden, an den Gruppeneigentümer des Verzeichnisses (numerisch =2XXX). Wenn die SGID für eine Datei festgelegt wird, ermöglicht sie Benutzern, ein Programm auszuführen, als ob sie der Gruppeneigentümer der Datei wären.
  • Sticky-Bit:t Sein Berechtigungssatz wird verwendet, um „Nichtbesitzer“ daran zu hindern, Dateien in einem gemeinsamen Verzeichnis (numerisch =1XXX) zu löschen. In einem Sticky-Bit-Verzeichnis kann nur der Besitzer der Datei oder der Besitzer des Verzeichnisses die Datei löschen (root kann immer auch Dateien löschen).

Lassen Sie mich Ihnen zum Verständnis ein Beispiel geben:

Mit dem folgenden Befehl wenden wir die SUID-Berechtigung auf eine Datei an:

# chmod 4755 bootstrap
# ls -l bootstrap
-rwsr-xr-x 1 root root 5747 Apr 25 01:45 bootstrap

Schlussfolgerung

Beim Ändern von Berechtigungen können Sie immer entweder die numerische Methode oder die symbolische Methode verwenden. Numerische Berechtigungen werden am häufigsten verwendet und erscheinen jedes Mal. In der Regel empfehle ich, den numerischen Modus zu verwenden, um Berechtigungen für ein Objekt festzulegen oder zu erzwingen, anstatt kleine Änderungen an Berechtigungen vorzunehmen. Sie sollten Root- oder Sudo-Benutzerzugriff haben, um Berechtigungen für Dateien und Verzeichnisse zu ändern, die anderen gehören. Andernfalls ist es nur möglich, Berechtigungen von Dateien und Verzeichnissen zu ändern, die Ihnen gehören.


Linux
  1. So ändern Sie einen Hostnamen unter Linux

  2. So ändern Sie einen Benutzernamen in Linux

  3. So ändern Sie den Hostnamen unter Linux

  4. So ändern Sie den SSH-Port unter Linux

  5. So verwenden Sie den Befehl chmod (Modus ändern) unter Linux

Chmod-Befehl – ​​So ändern Sie Dateiberechtigungen in Linux

So ändern Sie die MAC-Adresse in Linux

So ändern Sie eine Benutzer-Shell in Linux

So ändern Sie den Benutzer unter Linux

So ändern Sie die IP-Adresse unter Linux

So ändern Sie Dateiberechtigungen