
Um die Daten auf meinem Webserver zu sichern, habe ich die PHP-Includes in einen Ordner namens /var/www-includes (außerhalb von /var/www, dem Serverstamm) verschoben. Ich habe auch chown root:wwwadmin
und chmod 770
in diesem Ordner ausgeführt. Wenn ich ls -ld
in dem Ordner ausführe, überprüft es die Einstellungen: drwxrwx--- ... root wwwadmin ... www-includes
Obwohl ich von meinem Hauptbenutzer (adam), der Mitglied von wwwadmin ist, per cd in den Ordner wechseln kann, kann ich seinen Inhalt nicht in einem grafischen Dateibrowser anzeigen. Irgendeine Idee, warum? Bearbeiten: Wenn ich versuche, die enthaltenen Dateien in nano zu bearbeiten, wird mir außerdem eine Fehlermeldung angezeigt:
Error reading /home/adam/.nano_history: Permission denied
dann wird der Inhalt der Datei geöffnet. Ist das überhaupt relevant für das, was möglicherweise vor sich geht?
Antwort1
Vielleicht eine naheliegende Frage, aber ... haben Sie auch die Berechtigungen der Dateien im Verzeichnis geändert? Mit anderen Worten, haben Sie beim Ausgeben der chown/chmod-Befehle das Flag „-r“ (rekursiv) verwendet?
Antwort2
Vielleicht keine Antwort (da der Beitrag nicht genügend Informationen enthält), aber ich kann ihn bei Bedarf ergänzen. Bei Linux-Schulungen habe ich eine Methode entwickelt, um das Berechtigungsproblem schnell zu finden. Ich weiß, dass Sie einige der Schritte bereits ausgeführt haben, aber der Vollständigkeit halber muss ich sie vollständig aufschreiben.
- Wechseln Sie zu dem Benutzer, mit dem Sie zugreifen möchten. Tun Sie dies, bevor Sie irgendetwas anderes tun.
- Verwenden Sie
id
den Befehl, um Ihre aktuelle UID und Gruppen zu überprüfen. Verwenden Sie ihn,id name-of-the-user
um die Konfiguration auf der Festplatte zu überprüfen. Melden Sie sich ab und wieder an, wenn sie sich unterscheiden, und überprüfen Sie sie erneut. - Verwenden Sie „ls -l“, um das Zielverzeichnis zu überprüfen. Vergessen Sie nicht, das Zeichen direkt nach den Berechtigungen zu überprüfen. Möglicherweise steht dort ein Punkt, der bedeutet, dass es sich um einen Selinux-Kontext handelt, oder ein Pluszeichen, das bedeutet, dass Linux-ACLs festgelegt sind.
- Verwenden Sie „cd“, um in das Verzeichnis zu gelangen.
- Führen Sie die erforderlichen Aktionen für die regulären Dateien aus. Verwenden Sie
touch
diese Option, um den Schreibzugriff zu prüfen, und verwenden Sie diese Option,cat
um den Lesezugriff zu prüfen. - Prüfen Sie, ob auf Anwendungsebene alles wie erwartet funktioniert (z. B. verwenden Sie einen Browser, um auf die URL zuzugreifen, die zur entsprechenden Aktion führen soll, verwenden Sie Ihr bevorzugtes Bearbeitungstool, das zuvor fehlgeschlagen ist usw.)
- Fügen Sie der Anwendungsebene eine der oben genannten Prüfungen hinzu.
Wenn eine der Aktionen fehlschlägt und Sie keine Ahnung haben, warum, überprüfen Sie die Protokolle auf Selinux-Warnungen oder ähnliches. Sie können auch versuchen, strace -o strace.log
der Befehlszeile voranzustellen und dann das strace.log aufZugriff verweigertNachrichten. Aber es ist alles schwarze Magie, bis Sie den genauen Grund dafür kennenZugriff verweigert.