no way to compare when less than two revisions

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.


webhosting:webserver:dateiberechtigungen [11.05.2023 09:51] (aktuell) – angelegt admin
Zeile 1: Zeile 1:
 +====== Datei- und Verzeichnisberechtigungen ======
 +Damit Ihre Webseite vom Webserver gelesen und übertragen werden kann, müssen Dateien über die Berechtigung 640 und Verzeichnisse über die Berechtigung 750 verfügen. Eine Ausnahme sind Perl- und Python-Skripte im ''/cgi-bin'' Verzeichnis, welche ebenfalls über die Berechtigung 750 verfügen müssen, damit diese vom Webserver ausgeführt werden können.
  
 +===== Dateiberechtigungen erklärt =====
 +Auf Unix, Linux und ähnlichen Betriebssystemen werden Dateiberechtigungen in 3 Gruppen unterteilt: Benutzer, Benutzergruppe und Andere. Jede Datei ist immer jeweils einem Benutzer sowie einer Benutzergruppe zugeordnet. Dies ist wichtig, sobald ein Benutzer bzw. ein Programm auf eine Datei zugreifen möchte. Dabei wird zunächst geprüft, ob die entsprechende Datei dem Benutzer gehört. In dem Fall würden die Benutzer-Rechte gelten. Gehört die Datei nicht dem entsprechenden Benutzer, wird die Benutzer-Gruppe überprüft. Befindet sich der Benutzer in der entsprechenden Benutzergruppe, gelten die Benutzergruppen-Rechte. Stimmen weder Benutzer noch Benutzergruppe überein, gelten die Rechte für andere Benutzer.
 +
 +Die Berechtigungen werden immer mit 3 (Oktal-)Zahlen oder 10 Zeichen dargestellt. Lassen wir uns per SSH den Inhalt eines Verzeichnisses mit dem Befehl ''ls -la'' ausgeben, werden die Dateiberechtigungen für alle Dateien und Verzeichnisse angezeigt. Das sieht dann zum Beispiel so aus (hier als Beispiel das Verzeichnis einer WordPress Installation):
 +
 +<code>
 +drwxr-x---   5 123456f56789  www   1024 May  5 12:22 .
 +drwxr-x---  17 123456f56789  www    512 May  4 17:31 ..
 +-rw-r-----   1 123456f56789  www    742 May  5 12:22 .htaccess
 +-rw-r-----   1 123456f56789  www    405 Jan 27  2022 index.php
 +-rw-r--r--   1 123456f56789  www  19915 May  4 15:33 license.txt
 +-rw-r--r--   1 123456f56789  www   8723 May  4 15:33 liesmich.html
 +-rw-r--r--   1 123456f56789  www   7437 May  4 15:33 readme.html
 +-rw-r-----   1 123456f56789  www   7165 Jan 27  2022 wp-activate.php
 +drwxr-x---   9 123456f56789  www   2560 Jan 27  2022 wp-admin
 +-rw-r-----   1 123456f56789  www    351 Jan 27  2022 wp-blog-header.php
 +-rw-r-----   1 123456f56789  www   2338 Jan 27  2022 wp-comments-post.php
 +-rw-r-----   1 123456f56789  www   3622 Jan 27  2022 wp-config-sample.php
 +-rw-r-----   1 123456f56789  www   1240 Apr 20  2022 wp-config.php
 +drwxr-x---   7 123456f56789  www    512 May  4 15:33 wp-content
 +-rw-r-----   1 123456f56789  www   3939 Jan 27  2022 wp-cron.php
 +drwxr-x---  26 123456f56789  www   7168 Jan 27  2022 wp-includes
 +-rw-r-----   1 123456f56789  www   2496 Jan 27  2022 wp-links-opml.php
 +-rw-r-----   1 123456f56789  www   3900 Jan 27  2022 wp-load.php
 +-rw-r-----   1 123456f56789  www  47916 Jan 27  2022 wp-login.php
 +-rw-r--r--   1 123456f56789  www   8527 May  4 15:33 wp-mail.php
 +-rw-r-----   1 123456f56789  www  23025 Jan 27  2022 wp-settings.php
 +-rw-r-----   1 123456f56789  www  31959 Jan 27  2022 wp-signup.php
 +-rw-r--r--   1 123456f56789  www   4816 May  4 15:33 wp-trackback.php
 +-rw-r-----   1 123456f56789  www   3236 Jan 27  2022 xmlrpc.php
 +</code>
 +
 +Die ersten 10 Zeichen geben hier die Dateiberechtigungen an. Diese sind - wie oben bereits beschrieben - in 3 Blöcke für Benutzer, Benutzergruppe und Andere unterteilt.
 +
 +Das erste Zeichen gibt an, ob es sich um ein Verzeichnis oder eine normale Datei handelt. Ist das erste Zeichen ein ''d'', handelt es sich um ein Verzeichnis (engl. directory). Die nächsten 3 Zeichen (Zeichen 2 bis 4) geben die Benutzerrechte an. Darauf folgen 3 Zeichen (Zeichen 5 bis 7) für die Benutzergruppe, gefolgt von 3 Zeichen (Zeichen 8 bis 10) für andere Benutzer. Die Berechtigungen werden mit ''r'' (**r**ead / Leseberechtigung), ''w'' (**w**rite / Schreibberechtigung) und ''x'' (e**x**ecute / Ausführberechtigung) angegeben.
 +
 +  * **Leseberechtigung** besagt, dass eine Datei geöffnet und gelesen werden darf.
 +  * **Schreibberechtigung** besagt, dass eine Datei geöffnet und beschrieben werden darf.
 +  * **Ausführberechtigung** besagt, dass eine Datei als Programm ausgeführt werden darf. Im Fall von Perl- und Python-Skripten ist diese Berechtigung wichtig, da für diese - anders als im Fall von PHP - das Skript serverseitig ausgeführt werden muss, um den entsprechenden HTML-Quelltext zu erzeugen, der anschließend an den Webbrowser übertragen wird. Im Fall von PHP übernimmt der Webserver selbst die Verarbeitung der entsprechenden Skripte, daher ist dafür keine Ausführberechtigung notwendig. Bei Verzeichnissen bedeutet die Ausführberechtigung, dass ein Verzeichniss als sogenanntes Arbeitsverzeichnis genutzt werden darf, um darin Skripte und Programme auszuführen. Dies ist auch notwendig, um per SSH mit dem Befehl ''cd'' in ein Verzeichnis wechseln zu können.
 +
 +Wir haben hier eine kleine Übersicht erstellt, in der wir gängige Dateiberechtigungen aufschlüsseln und erklären:
 +
 +^ Berechtigung ^ numerische Darstellung ^ Erklärung ^
 +| ''%%drwxr-x---%%'' | 750 | Ein Verzeichnis, das vom Besitzer gelesen und beschrieben werden darf und von der Benutzergruppe nur gelesen werden darf. Alle anderen Benutzer haben keinen Zugriff auf dieses Verzeichnis |
 +| ''%%drwxr-xr-x%%'' | 755 | Ein Verzeichnis, das vom Besitzer gelesen und beschrieben werden darf und von allen anderen Benutzer nur gelesen werden darf. |
 +| ''%%drwx------%%'' | 700 | Ein Verzeichnis, das ausschließlich vom Besitzer gelesen und beschrieben werden darf. Alle anderen Benutzer (auch die der entsprechenden Benutzergruppe) haben keinen Zugriff auf das Verzeichnis. |
 +| ''%%-rwxr-x---%%'' | 750 | Eine Datei, die vom Besitzer der Datei gelesen, beschrieben und als Programm ausgeführt werden darf und von der Benutzergrupp gelesen und als Programm ausgeführt werden darf. Alle anderen Benutzer haben keinen Zugriff auf diese Datei. |
 +| ''%%-rw-r-----%%'' | 640 | Eine Datei, die vom Besitzer der Datei gelesen und beschrieben werden darf und von der Benutzergruppe gelesen werden darf. Die Datei darf nicht als Programm ausgeführt werden. |
 +| ''%%-rwxr-xr-x%%'' | 755 | Eine Datei, die vom Besitzer der Datei gelesen, beschrieben und als Programm ausgeführt werden darf und von allen anderen Benutzern gelesen und als Programm ausgeführt werden darf. |
 +| ''%%-rw-r--r--%%'' | 644 | Eine Datei, die vom Besitzer der Datei gelesen und beschrieben werden darf und von allen anderen Benutzern nur gelesen werden darf. Die Datei darf nicht als Programm ausgeführt werden. |
 +| ''%%-rw-------%%'' | 600 | Eine Datei, die ausschließlich vom Besitzer der Datei gelesen und beschrieben werden darf. Die Datei darf nicht als Programm ausgeführt werden. Alle anderen Benutzer (auch die der entsprechenden Benutzergruppe) haben keinen Zugriff auf die Datei. |
 +| ''%%-rwx------%%'' | 700 | Eine Datei, die ausschließlich vom Besitzer der Datei gelesen, beschrieben und als Programm ausgeführt werden darf. Alle anderen Benutzer (auch die der entsprechenden Benutzergruppe) haben keinen Zugriff auf die Datei. |
 +| ''%%-rwxrwxrwx%%'' | 777 | Eine Datei mit Vollzugriff für alle Benutzer. Nicht empfohlen, da die Datei von allen Benutzern auf dem Server geändert werden kann. |