Berechtigung für Protokolldatei verweigert

Berechtigung für Protokolldatei verweigert

Ich möchte Protokolldateien von Apache als normaler Benutzer anzeigen können. Ich habe diese Dateien als Root auf 777 gesetzt, kann sie aber trotzdem nicht als normaler Benutzer anzeigen. Warum ist das so?

#I have set permissions for everyone
root@senior:/var/log/apache2# ls -l
total 200
-rwxrwxrwx 1 root root   1951 Feb 27 23:07 access.log
-rwxrwxrwx 1 root root  89508 Feb 27 23:07 error.log
-rwxrwxrwx 1 root root 101601 Feb 27 23:06 other_vhosts_access.log

#I have also set directory permission 
root@senior:/var/log# ls -l
drw-rw-r-- 2 root        adm          4096 Feb 27 23:08 apache2

Die Dateien können jedoch immer noch nicht angezeigt werden

kubi@senior:$ ls -l /var/log/apache2/
ls: cannot access /var/log/apache2/other_vhosts_access.log: Permission denied
ls: cannot access /var/log/apache2/error.log: Permission denied
ls: cannot access /var/log/apache2/access.log: Permission denied
total 0
-????????? ? ? ? ?            ? access.log
-????????? ? ? ? ?            ? error.log
-????????? ? ? ? ?            ? other_vhosts_access.log
kubi@senior:/$ ls /var/log/apache2/error.log
ls: cannot access /var/log/apache2/error.log: Permission denied

Ich verwende Debian

Antwort1

Das Verzeichnis sollte sein 750, nicht 664. Außerdem sollten Sie den Benutzer zur admGruppe hinzufügen. Das ist eigentlich der Hauptzweck der admGruppe: Protokolle lesen.

Berechtigungen für Verzeichnisse unterscheiden sich ein wenig von denen für Dateien. Um es einfach zu machen: Ein Verzeichnis ist eine Liste von Namen und Adressen: Der Name ist der Dateiname, die Adresse der tatsächliche Speicherort der Datei. Die xBerechtigung steuert den Zugriff auf diese Liste: Um die Adresse einer bestimmten Datei nachzuschlagen, benötigen Sie das Ausführungsbit für das übergeordnete Verzeichnis und das übergeordnete Verzeichnis dieses Verzeichnisses usw. Die rBerechtigung steuert dannAuflistungDateien: Wenn Sie haben --x, können Sie auf eine Datei zugreifen, wenn Sie ihren Namen kennen, aber Sie können nicht ls. Schließlich wsteuert das Erstellen, Umbenennen und Löschen von Dateien. Um auf eine Datei zuzugreifen, benötigen Sie also immer das xBit.

Außerdem: Setzen Sie die Protokolldateien NICHT auf 777. Sie sollten 644 oder 640 sein, eine der beiden. Aus zwei Gründen: Erstens sind sie nicht ausführbar, also xsollte das Bit ausgeschaltet sein. Zweitens, was noch wichtiger ist, sollten normale Benutzerniemalsin Apache-Logdateien schreiben, nur lesen. Das ist eine potenzielle Sicherheitslücke im Server.

Antwort2

Sie müssen das Ausführungsflag für Verzeichnisse setzen, um die darin enthaltenen Dateien auflisten zu dürfen.

Die bessere Lösung besteht jedoch darin, die Dateiberechtigungen nicht zu ändern, sondern den Benutzer zur Administratorgruppe (adm) hinzuzufügen.

verwandte Informationen