
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 adm
Gruppe hinzufügen. Das ist eigentlich der Hauptzweck der adm
Gruppe: 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 x
Berechtigung 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 r
Berechtigung 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 w
steuert das Erstellen, Umbenennen und Löschen von Dateien. Um auf eine Datei zuzugreifen, benötigen Sie also immer das x
Bit.
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 x
sollte 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.