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

Was bedeutet chmod 777

Sie versuchen, ein Berechtigungsproblem mit Ihrem Webserver zu beheben, und haben im Internet Informationen gefunden, die besagen, dass Sie rekursiv chmod 777 ausführen müssen das Webverzeichnis. Stellen Sie zuvor sicher, dass Sie verstehen, was chmod -R 777 bedeutet tun und warum Sie niemals Berechtigungen auf 777 setzen sollten.

Dieser Artikel erklärt das grundlegende Linux-Berechtigungsmodell und was die den Berechtigungen entsprechenden Nummern bedeuten.

Linux-Dateiberechtigungen verstehen #

Unter Linux wird der Zugriff auf die Dateien vom Betriebssystem mithilfe von Dateiberechtigungen, Attributen und Eigentumsrechten gesteuert. Wenn Sie das Berechtigungsmodell des Linux-Dateisystems verstehen, können Sie den Zugriff auf Dateien und Verzeichnisse nur auf autorisierte Benutzer und Prozesse beschränken und Ihr System sicherer machen.

Jede Datei ist im Besitz eines bestimmten Benutzers und einer Gruppe und hat Zugriffsrechte für drei verschiedene Benutzerklassen:

  • Der Eigentümer der Datei.
  • Die Gruppenmitglieder.
  • Andere (alle anderen).

Es gibt drei Dateiberechtigungstypen, die für jede Benutzerklasse gelten und mit denen Sie angeben können, welche Benutzer die Datei lesen, in die Datei schreiben oder die Datei ausführen dürfen. Für Dateien und Verzeichnisse gelten dieselben Berechtigungsattribute mit unterschiedlicher Bedeutung:

  • Die Leseberechtigung.
    • Die Datei ist lesbar. Wenn beispielsweise die Leseberechtigung gesetzt ist, kann der Benutzer die Datei in einem Texteditor öffnen.
    • Der Inhalt des Verzeichnisses kann angezeigt werden. Der Benutzer kann Dateien innerhalb des Verzeichnisses mit ls auflisten Befehl.
  • Die Schreibberechtigung.
    • Die Datei kann geändert oder modifiziert werden.
    • Der Inhalt des Verzeichnisses kann geändert werden. Der Benutzer kann neue Dateien erstellen, vorhandene Dateien löschen, Dateien verschieben, Dateien umbenennen usw.
  • Die Ausführungsberechtigung.
    • Die Datei kann ausgeführt werden.
    • Das Verzeichnis kann mit cd eingegeben werden Befehl.

Dateiberechtigungen können mit ls angezeigt werden Befehl. Hier ist ein Beispiel:

ls -l filename.txt
-rw-r--r-- 12 linuxize users 12.0K Apr  8 20:51 filename.txt
|[-][-][-]-   [------] [---]
| |  |  | |      |       |
| |  |  | |      |       +-----------> 7. Group
| |  |  | |      +-------------------> 6. Owner
| |  |  | +--------------------------> 5. Alternate Access Method
| |  |  +----------------------------> 4. Others Permissions
| |  +-------------------------------> 3. Group Permissions
| +----------------------------------> 2. Owner Permissions
+------------------------------------> 1. File Type

Das erste Zeichen zeigt den Dateityp an. Es kann eine normale Datei sein (- ), Verzeichnis (d ), ein symbolischer Link (l ) oder einen anderen speziellen Dateityp.

Die nächsten neun Zeichen stellen die Dateiberechtigungen dar, drei Triplets mit jeweils drei Zeichen. Das erste Triplett zeigt die Eigentümerberechtigungen, das zweite die Gruppenberechtigungen und das letzte Triplett zeigt die Berechtigungen aller anderen.

Berechtigungsnummer #

Die Dateiberechtigung kann in einem numerischen oder symbolischen Format dargestellt werden. In diesem Artikel konzentrieren wir uns auf das numerische Format.

Die Berechtigungsnummer kann aus drei oder vier Ziffern bestehen, die von 0 bis 7 reichen.

Wenn eine dreistellige Zahl verwendet wird, stellt die erste Ziffer die Berechtigungen des Eigentümers der Datei dar, die zweite die Gruppe der Datei und die letzte alle anderen Benutzer.

Die Schreib-, Lese- und Ausführungsberechtigungen haben den folgenden Zahlenwert:

  • r (lesen) =4
  • w (schreiben) =2
  • x (Ausführen) =1
  • keine Berechtigungen =0

Die Berechtigungsziffer einer bestimmten Benutzerklasse ist die Summe der Werte der Berechtigungen für diese Klasse.

Jede Ziffer der Berechtigungsnummer kann eine Summe aus 4, 2, 1 und 0 sein:

  • 0 (0+0+0) – Keine Berechtigung.
  • 1 (0+0+1) – Nur Ausführungsberechtigung.
  • 2 (0+2+0) – Nur Schreibberechtigung.
  • 3 (0+2+1) – Schreib- und Ausführungsberechtigungen.
  • 4 (4+0+0) – Nur Leseberechtigung.
  • 5 (4+0+1) – Lese- und Ausführungsberechtigung.
  • 6 (4+2+0) – Lese- und Schreibberechtigungen.
  • 7 (4+2+1) – Lese-, Schreib- und Ausführungsberechtigung.

Wenn die Berechtigungsnummer beispielsweise auf 750 eingestellt ist, bedeutet dies, dass der Eigentümer der Datei Lese-, Schreib- und Ausführungsberechtigungen hat, die Dateigruppe Lese- und Ausführungsberechtigungen hat und andere Benutzer keine Berechtigungen haben:

  • Eigentümer:rwx=4+2+1=7
  • Gruppe:r-x=4+0+1=5
  • Andere:r-x=0+0+0=0

Bei Verwendung der 4-stelligen Nummer hat die erste Ziffer folgende Bedeutung:

  • setuid=4
  • setgid=2
  • sticky=1
  • keine Änderungen =0

Die nächsten drei Ziffern haben die gleiche Bedeutung wie bei Verwendung einer 3-stelligen Nummer. Wenn die erste Ziffer 0 ist, kann sie weggelassen werden und der Modus kann mit 3 Ziffern dargestellt werden. Der numerische Modus 0755 ist dasselbe wie 755 .

Um die Berechtigungen der Datei in numerischer (oktaler) Notation anzuzeigen, verwenden Sie stat Befehl:

stat -c "%a" filename
644

Verwende niemals chmod 777 #

Das Festlegen von 777-Berechtigungen für eine Datei oder ein Verzeichnis bedeutet, dass sie für alle Benutzer lesbar, beschreibbar und ausführbar sind und ein enormes Sicherheitsrisiko darstellen können.

Wenn Sie beispielsweise die Berechtigungen aller Dateien und Unterverzeichnisse unter /var/www rekursiv ändern Verzeichnis nach 777 , kann jeder Benutzer des Systems Dateien in diesem Verzeichnis erstellen, löschen oder ändern.

Wenn bei Ihrem Webserver Berechtigungsprobleme auftreten, setzen Sie die Berechtigung nicht rekursiv auf 777 , ändern Sie den Eigentümer der Datei auf den Benutzer, der die Anwendung ausführt, und setzen Sie die Berechtigungen der Datei auf 644 und die Berechtigungen des Verzeichnisses auf 755 .

Der Dateibesitz kann mit chown geändert werden Befehl und Berechtigungen mit dem chmod Befehl.

Nehmen wir an, Sie haben eine PHP-Anwendung auf Ihrem Server, die als Benutzer „linuxize“ ausgeführt wird. Um die richtigen Berechtigungen festzulegen, würden Sie Folgendes ausführen:

chown -R linuxize: /var/wwwfind /var/www -type d -exec chmod 755 {} \;find /var/www -type f -exec chmod 644 {} \;

Nur root, der Dateieigentümer oder Benutzer mit sudo-Berechtigungen können die Berechtigungen einer Datei ändern. Seien Sie besonders vorsichtig, wenn Sie chmod verwenden , insbesondere wenn die Berechtigungen rekursiv geändert werden.

Schlussfolgerung #

Wenn Sie ein Linux-System verwalten, ist es wichtig zu wissen, wie die Linux-Berechtigungen funktionieren.

Sie sollten niemals 777 (rwxrwxrwx ) Berechtigungen Dateien und Verzeichnisse Berechtigungen. 777 bedeutet, dass jeder mit diesen Dateien alles machen kann.

Fühlen Sie sich frei, einen Kommentar zu hinterlassen, wenn Sie Fragen haben.


Linux
  1. Was bedeutet „:-“ in einem Shell-Skript?

  2. Was bedeutet das Attribut „s“ in Dateiberechtigungen?

  3. Was bedeutet „rm ist gehasht“?

  4. Was bedeutet rc in Punktdateien

  5. Was bedeutet #define X X?

Was bedeutet „–“ (Doppelstrich)?

Was bedeutet es, „sh-kompatibel“ zu sein?

Keine X11-DISPLAY-Variable - was bedeutet das?

Was bedeutet diese Warnung?

Was bedeutet - in diesem Linux-Befehl?

Was bedeutet, wenn [[ $? -ne 0 ]]; bedeuten in .ksh