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

Linux-Berechtigungen:Eine Einführung in chmod

[Möchten Sie Red Hat Enterprise Linux ausprobieren? Jetzt kostenlos herunterladen.]

Wenn Sie jemals mit einem Linux-System gearbeitet haben, haben Sie sicherlich mit Dateien zu tun gehabt, und das bedeutet, dass Sie möglicherweise auf Meldungen wie diese unten gestoßen sind:

localhost@user1$ cat /etc/sudoers
cat: /etc/sudoers: Permission denied

Oder, ähnlich wie hier, Fehlermeldungen wie „Sie haben keine Berechtigung zum Hochladen von Dateien in diesen Ordner“, die Sie möglicherweise daran gehindert haben, eine bestimmte Datei zu lesen, zu schreiben oder darauf zuzugreifen. Und natürlich haben Sie sich bei diesem Fehler gefragt – zumindest als Sie dieses Problem zum ersten Mal hatten – warum Ihnen der Zugriff verweigert wurde.

Werfen wir einen Blick auf die Dateiberechtigungen von Linux und die Möglichkeiten, sie einzuschränken, und spielen Sie ein wenig mit Dateien. Wenn Sie unter Linux Dateien in einem bestimmten Verzeichnis auflisten, haben Sie vielleicht r, w und x gesehen und sich gefragt, was diese Buchstaben bedeuten. Sie haben eine enorme Bedeutung bei der Bestimmung, was genau ein bestimmter Benutzer mit einer Datei tun kann.

Schauen wir uns ein Beispiel an:

localhost@user1$ ls -ltr chmod_directory/
total 0
-rw-r--r--. 1 creator creator 0 Jul 29 21:55 I_Can_Write.txt
-rw-r--r--. 1 creator creator 0 Jul 29 21:55 I_Can_Execute.sh
-rw-r--r--. 1 creator creator 0 Jul 29 21:55 I_Can_Access.txt

Standard-Dateiberechtigungen sind rw-r--r-- (aus dem umask-Wert (wird später in diesem Artikel behandelt)), wie im obigen Beispiel gezeigt.

Jeder Berechtigung ist ein numerischer Wert zugewiesen:

  • r (read) hat den Wert 4
  • w (schreiben) hat einen Wert von 2
  • x (execute) hat den Wert 1

Diese Werte sind für jedes „Triplett“ additiv, was bedeutet, dass eine Dateiberechtigung von rw- den Wert 6 und rwx den Wert 7 hat. Wie oben besprochen, ist der Standardwert jeder neu erstellten Datei 644 (rw-r --r--), was bedeutet, dass der Eigentümer der Datei lesen und schreiben kann und alle anderen diese Datei nur lesen können. Das erste Triplett ist die Berechtigung für den Eigentümer/Ersteller der Datei, das zweite für Gruppenberechtigungen und das dritte für andere (Benutzer außerhalb des Eigentümers/Erstellers oder einer Gruppe mit Berechtigungen). Diese Einstellung ist aus offensichtlichen Gründen sinnvoll:Der Besitzer sollte eine höhere Kontrolle über den Inhalt der Datei haben, um sowohl lesen als auch schreiben zu können. Andere möchten vielleicht den Inhalt lesen, aber nicht ändern. Natürlich können Sie diese Einstellung mit dem chmod ändern Befehl, der im Mittelpunkt dieses Artikels steht.

Um dieses Konzept einfacher zu verstehen, stellen Sie sich Dateiberechtigungen als eine 3x3-Matrix vor, in der Besitzer, Gruppen und andere jeweils r-, w- und x-Einstellungen haben. Im obigen Beispiel:

  • Der Ersteller der Datei (Inhaber/Nutzer) hat Lese- und Schreibberechtigungen:-rw -r--r--.
  • Der Gruppenersteller der Datei (Gruppe) hat Leserechte:-rw-r-- r--.
  • Andere haben Leseberechtigungen, dargestellt durch die letzten Bits:-rw-r--r-- .

Sehen wir uns nun die Standardberechtigungswerte für ein Verzeichnis an. Sagen wir das Verzeichnis chmod_directory wurde mit den Standardberechtigungen 755 erstellt. Im Gegensatz zu Dateien enthält ein Verzeichnis Dateien. Damit jemand anderes als der Besitzer 'cd ' in das Verzeichnis, benötigt es eine Ausführungserlaubnis, die wiederum das Verzeichnis zu:

macht
  • Lesbar, beschreibbar und ausführbar durch den Besitzer (rwx ist 7).
  • Lesbar und ausführbar durch die Gruppe (r-x ist 5).
  • Lesbar und ausführbar für andere (r-x ist 5).

Hinweis:Die Bezeichnung r-x bedeutet NICHT r minus x, sondern bedeutet Lesen und Ausführen, aber fehlendes Schreiben. Das - ist ein Platzhalter für eine Berechtigung.

(Bitte nehmen Sie sich eine Minute Zeit, um darüber nachzudenken, warum dies das Standardverhalten ist.)

Ok, jetzt, da Sie die Grundlagen von Datei- und Verzeichnisberechtigungen gelernt haben, werfen wir einen Blick auf chmod Befehl, der beim Vornehmen von Berechtigungsänderungen für Dateien und Verzeichnisse hilft.

Wie in der Manpage erwähnt:

This manual page documents the GNU version of chmod. chmod changes the file mode bits of each given file according to mode, which can be either a symbolic representation of changes to make, or an octal number representing the bit pattern for the new mode bits.

The format of a symbolic mode is [ugoa...][[+-=][perms...]...], where perms is either zero or more letters from the set rwxXst, or a single letter from the set ugo. Multiple symbolic modes can be given, separated by commas.

A combination of the letters ugoa controls which users' access to the file will be changed: the user who owns it (u), other users in the file's group (g), other users not in the file's group (o), or all users (a). If none of these are given, the effect is as if a were given, but bits that are set in the umask are not affected.

Oktaldarstellung verwenden

Zum Ändern von Dateiberechtigungen können Sie entweder die oktale Darstellung (numerisch) oder die symbolische Darstellung (die Buchstaben) verwenden. Bei der oktalen Darstellung steht die erste Ziffer für den Benutzer, die zweite Ziffer für die Gruppe und die dritte Ziffer für andere. Sehen wir uns zwei Beispiele für das Festlegen von Berechtigungen mit oktaler Darstellung an, um dieses Konzept zu verstehen.

Beispiel 1 :Wenn Sie sowohl dem Benutzer als auch der Gruppe Lese- (4), Schreib- (2) und Ausführungsberechtigungen (1) und anderen nur Leseberechtigungen (4) erteilen möchten, können Sie Folgendes verwenden:

localhost@user1$ chmod 774 <file-name>

Beispiel 2 :Wenn Sie Schreibrechte auf alle anderen außer dem Eigentümer der Datei beschränken möchten, können Sie Folgendes verwenden:

localhost@user1$ chmod 744 <file-name>

Symbolische Darstellung verwenden

Sie können Berechtigungen auch symbolisch statt numerisch ändern. Die symbolische Darstellung weist Benutzern (u), Gruppen (g) und anderen (o) Berechtigungen zu, indem Buchstaben (Symbole) und die Buchstabenbezeichnungen verwendet werden:r, w und x.

Sehen wir uns diese Beispiele noch einmal an, aber mit symbolischer Darstellung.

Beispiel 1 :Lesen, schreiben und ausführen für den Benutzer und die Gruppe, plus nur lesen für andere, Zuordnungen als:

localhost@user1$ chmod ug+rwx,o+r <filename>

Beispiel 2 :Lesen, schreiben und ausführen für den Benutzer und nur Leseberechtigungen für Gruppen- und andere Karten als:

localhost@user1$ chmod u+rwx,go+r <file-name>

Großartig, ich bin stolz auf euch alle:Ihr beherrscht jetzt Dateiberechtigungskonzepte. Aber ich warne Sie, dass es zwei gefährliche Szenarien gibt, die Sie vielleicht vermeiden möchten, also behalten Sie dies als bewährte Methode bei der Verwendung von chmod bei. Vermeiden Sie Grenzfälle wie chmod 777 <file-name> und chmod 000 <filename> . Mit chmod 777 <file-name> gibt jedem rwx-Berechtigungen, und es ist im Allgemeinen keine gute Praxis, allen Benutzern in einem System volle Befugnisse zu geben. Den zweiten Fall überlasse ich euch.

umasks verwenden

Ich werde euch ein weiteres Konzept überlassen, das ihr beachten müsst (umask), das die Standardberechtigungen für eine Datei festlegt. Insgesamt sind die Standardwerte:

  • Umask:0022
  • Datei:0666
  • Verzeichnis:0777

Wie Sie sich vielleicht erinnern, ist der Standardwert für die Dateiberechtigung 0644 und der Standardwert für das Verzeichnis 0755. Der Standardwert für umask wird vom Gesamtstandardwert für Datei/Verzeichnis abgezogen. Sie können die umask-Werte in /etc/profile festlegen oder in ~/.bashrc .

Abschluss

Chmod ist ein großartiger Linux-Befehl zum Manipulieren von Datei- und Verzeichnisberechtigungen. Mit den in diesem Artikel erwähnten Konzepten verfügen Sie über ausreichende Kenntnisse, um mit Berechtigungen in Linux-basierten Distributionen umzugehen.


Linux
  1. Einführung in den Linux-Befehl chmod

  2. Eine Einführung in die Überwachung von Linux-Benutzerkonten

  3. Linux chmod und chown – So ändern Sie Dateiberechtigungen und Eigentumsrechte in Linux

  4. Dateiberechtigungen unter Linux mit Beispiel

  5. Linux-Berechtigungen ändern

Chmod-Befehl in Linux (Dateiberechtigungen)

Chmod-Befehl unter Linux

Linux-Berechtigungen – So finden Sie Berechtigungen einer Datei

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

Grundlegendes zu Linux-Dateiberechtigungen

Linux-Chmod-Befehlsbeispiele