Inhaltsverzeichnis
Dateiberechtigungen
Einleitung
Dieser Artikel bezieht sich auf die Datei- und Verzeichnisberechtigungen unter Linux-Systemen, welche auf den Webhosting-Servern der GWDG Anwendung finden. Dateiberechtigungen dienen zur eindeutigen Feststellung der Ausführungs-, Schreib- sowie Leseberechtigungen für Gruppen und einzelne Benutzer. Dateiberechtigungen bilden somit einen elementaren Teil des Sicherheitskonzeptes eines Linux-Systems dar.
Konzept
Einer Datei kann, vereinfachend gesagt, jeweils ein Wert für die drei Grundfunktionen
- Lesen (
r
) - Schreiben (
w
) - Ausführen (
x
)
zugeordnet werden. Zusätzlich ist jede Datei einem Eigentümer sowie einer Benutzergruppe zugeordnet.
Die tatsächlichen Berechtigungen für den einzelnen Nutzer ergeben sich aus der Notierung nach dem Muster:
- Eigentümer
- Gruppe
- Sonstige
Eine Berechtigung nach dem Muster -rwx–r–r
wäre demnach folgendermaßen zu übersetzen:
- 1. Block (Eigentümer):
Read
,Write
,Execute
- 2. Block (Gruppe):
Read
- 3. Block (Sonstige):
Read
Hierbei gilt: Eine normale Datei wird mit einem führenden -
markiert - ein Verzeichnis mit einem d
.
Ausführliches Beispiel:
-rw-r--r-- 1 testuser testgroup 110M Jun 17 2016 testfile
Der Eigentümer der Datei testfile
ist demnach der Nutzer testuser
. Als Gruppenberechtigung ist testgroup
hinterlegt. Der Eigentümer darf diese Datei lesen und beschreiben, die Mitglieder der Gruppe testgroup
sowie alle anderen (Sonstige) dürfen diese Datei nur lesen.
Oktalnotation
Bei der Oktalnotation wird die Berechtigungsangabe auf eine Oktalzahl verkürzt.
Hierbei werden die sich ergebenden Werte aus folgender Zuordnung aufaddiert:
- Lesen:
4
- Schreiben:
2
- Ausführen:
1
Die Berechtigung rwx
würde demnach dem Wert 7
entsprechen (4
für r
+ 2
für w
+ 1
für x
). Somit ist die Dateiberechtigung 755
folgendermaßen zu übersetzen:
- 1. Block (Eigentümer):
Read
,Write
,Execute
- 2. Block (Gruppe):
Read
,Execute
- 3. Block (Sonstige):
Read
,Execute
Auswirkungen auf den Betrieb von Webseiten
Die Vergabe von Dateiberechtigungen hat direkte Auswirkungen auf den Betrieb von Webseiten. So werden Dateien, welche per SFTP in das Dokumentenstammverzeichnis geladen werden, grundsätzlich dem Systembenutzer des Abonnements zugeordnet. Der Anwender kann zudem über einen geeigneten SFTP-Client Berechtigungen vergeben.
Ungewünschte Nebeneffekte können sich jedoch ergeben, sofern PHP-Scripte des Anwenders selbst versuchen, existierende Daten zu überschreiben. Der Apache-Webserver läuft als Prozess unter dem Benutzer www-data
und ist somit nicht identisch mit dem Systembenutzer. Wird eine Datei beispielsweise mit den Berechtigungen 644
abgelegt, so ist der PHP-Prozess unter dem Benutzer www-data
entsprechend nicht in der Lage, diese Datei zu überschreiben.
Dieses Verhalten kann beim Upload von Bildern, aber auch bei der webbasierten Durchführung von Updates, häufig vorzufinden in CMS wie WordPress, Drupal, PageKit oder Joomla! auftreten.
Wird eine webbasierte Wartung gewünscht, so ist zu prüfen, ob eine Übergabe der Dateieigentümerschaft an www-data
sinnvoll ist.