Fedora 16: "Berechtigung verweigert: Dateiberechtigungen verweigern Serverzugriff"

7

Ich arbeite mit einer neuen Fedora 16-Installation und versuche, Apache zum Laufen zu bringen. Ich bin sehr vertraut mit Linux und etwas mit CentOS, aber ich habe sehr wenig Erfahrung mit Fedora und SELinux (was auch immer das ist).

Nach der Installation von Apache konnte ich zunächst nicht einmal die Beispielwebseite sehen. Ich habe etwas gesucht und dieses Problem schließlich behoben, indem ich die iptables bearbeitet habe.

sudo iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT
sudo iptables-save

Ich habe einige Dateien im Webstamm abgelegt, um sicherzustellen, dass die Berechtigungen korrekt festgelegt wurden.

$ ls -Rlhp /var/www/html/
/var/www/html/:
total 8.0K
drwxr-xr-x. 2 apache root 4.0K Apr 20 22:47 files/

/var/www/html/files:
total 25M
-rw-r--r--. 1 apache users 25M Apr 20 22:47 SRR022918.errors.tar.gz

Als ich dann zur entsprechenden URL ( my.server.edu/files/SRR022918.errors.tar.gz) navigierte, wurde der Fehler 403 Berechtigung verweigert angezeigt. Ich habe das Apache-Fehlerprotokoll überprüft und diese Meldung gefunden.

[Fri Apr 20 23:09:55 2012] [error] [client xxx.xxx.xx.xx] (13)Permission denied: file permissions deny server access: /var/www/html/files/SRR022918.errors.tar.gz

Ich habe versucht, Datei- und Verzeichnisberechtigungen auf 777 zu setzen, aber das hat das Problem nicht gelöst. Das ist wirklich faul, also schätze ich, dass dies etwas mit SELinux zu tun hat. Ich habe keine Erfahrung mit SELinux. Bin ich also auf dem richtigen Weg? Wenn ja, wie behebe ich das?

Daniel Standage
quelle
Zu beachten ist, dass sudo iptables-save nur die aktuelle iptables-Konfiguration ausgibt. Sie müssen dies in / etc / sysconfig / iptables speichern, damit es einen Serverneustart überlebt.
wird am
Und wie geht das? Entschuldigung für meine mangelnde Erfahrung mit Fedora ...
Daniel Standage
Ich habe dies nicht wie folgt getestet, also sudo cat / etc / sysconfig / iptables zuerst, damit Sie wissen, dass es vor dem Ändern ist (oder verwenden Sie cp, um es zu sichern). Aber sudo iptables-save | sudo tee / etc / sysconfig / iptables sollte funktionieren. Überprüfen Sie anschließend den Inhalt, um festzustellen, ob die erwarteten Regeln vorhanden sind. Wenn ja, können Sie es testen, indem Sie den Neustart von sudo service iptables ausführen.
wird am
Warum betreiben Sie Fedora überhaupt?
womble
@womble Ich persönlich bevorzuge Debian (Server) und Ubuntu (Desktop), aber die Wahl der Distribution war eine Entscheidung meines Vorgesetzten.
Daniel Standage

Antworten:

14

Wenn Speicherplatz zur Verfügung steht, müssen Sie wahrscheinlich ausführen chcon -R -h -t httpd_sys_content_t /var/www/html

Dadurch wird Ihr Inhaltsverzeichnis rekursiv auf den richtigen Kontext für Apache eingestellt.

Magellan
quelle
Ich habe fast alles versucht, um die Dateiberechtigungen zum Laufen zu bringen. Vielen Dank dafür
Jtvd78
7

Dieses Problem mit der Dateiberechtigung ist erwartungsgemäß auf SELinux zurückzuführen. Es ist ziemlich kompliziert, aber die guten Leute bei CentOS haben ein ziemlich gutes Wiki zusammengestellt, um Sie zum Laufen zu bringen . Kurz gesagt, Sie können entweder SELinux deaktivieren (völlig schlechte Idee), den zulässigen Modus einstellen (etwas weniger schlechte Idee) oder mit SELinux arbeiten. Da das Wiki die Details ziemlich prägnant behandelt, werde ich es trocken halten und Sie das Wiki lesen lassen.

Ich habe meine behoben, indem ich die Dateien in / var / www / html kopiert und dann den Standardkontext für diesen Ordner wiederhergestellt habe, indem ich:

restorecon -Rv /var/www/html
Lucas
quelle
Ich möchte darauf hinweisen, dass diese Antwort unter CentOS7 perfekt für mich funktioniert hat.
Josh