Ich habe den Apache-Webserver auf meinem Centos 7 installiert und aktiviert mod_ssl
. Aber wenn ich versuche, das Standard-Dokumentenstammverzeichnis in ein neues zu ändern (zum Beispiel /home/user/public_html
), wird mir eine 403 Forbidden
Seite angezeigt. Ich denke, es liegt vielleicht an den Berechtigungen für das Verzeichnis, aber ich weiß nicht, was ich damit machen und wie ich es ändern soll. Was soll ich jetzt tun? Jede Hilfe ist wirklich willkommen.
Antwort1
Legen Sie keine Dokumentstammverzeichnisse in Benutzer-Home-Verzeichnissen ab. Dies ist aus verschiedenen Gründen unsicher, und SELinux erlaubt dem Webserver standardmäßig nicht, Dateien in Benutzer-Home-Verzeichnissen zu lesen. Verwenden Sie ein Verzeichnis, das SELinux erkennt, z. B. , /srv/www
erstellen Sie darunter für jeden virtuellen Host Verzeichnisse und erteilen Sie den Benutzern, die auf den Inhalt zugreifen müssen, die entsprechenden Berechtigungen und ACLs.
Wenn Sie aus irgendeinem Grund die bewährten Vorgehensweisen nicht befolgen können und der Webserver Inhalte aus den Stammverzeichnissen der Benutzer lesen muss, können Sie den httpd_read_user_content
Booleschen Wert festlegen.
setsebool -P httpd_read_user_content 1
Beachten Sie jedoch, dass SELinux aus Sicherheitsgründen niemals das Schreiben in Benutzer-Home-Verzeichnisse zulässt. Daher funktionieren Webanwendungsfunktionen, die Inhalte schreiben müssen (z. B. Benutzer-Uploads), nicht. Unter einem anderen Verzeichnis wie kann /srv/www
Verzeichnissen, die beschreibbar sein müssen, der Typ zugewiesen werden httpd_sys_rw_content_t
.