Optimale Eigentümer-/Berechtigungseinstellungen für ein auf Apache ausgeführtes Website-Verzeichnis

Optimale Eigentümer-/Berechtigungseinstellungen für ein auf Apache ausgeführtes Website-Verzeichnis

Auf meinem virtuellen Server verwende ich Ubuntu und habe einige Einstellungen zu meinem Thema vorgenommen. Ich bin mir aber nicht sicher, ob alles richtig eingerichtet ist.

Mein aktuelles Setup ist das Folgende:

Apache2:

export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data
export APACHE_PID_FILE=/var/run/apache2.pid

Ich habe Artikel über das Hinzufügen eines zusätzlichen Benutzers gelesen, sudo adduser apacheder beispielsweise den Apache-Server ausführt. Was ist also eine gute Wahl?

Website-Verzeichnisse:

drwxr-xr-x 5 www-data:www-data 4.0K Feb  5 04:16 mysite/

Dieses Verzeichnis befindet sich beispielsweise in /var/www. Meine Ordnereinstellungen in diesem Verzeichnis lauten chmod 755und meine Dateien sind 644. Soll es www-data oder meinem Benutzernamen gehören?

Ich wäre froh, wenn Sie mir hierzu einige Best Practices nennen könnten. Danke für den Rat!

Antwort1

Das Wichtigste, was ich gelernt habe, ist, Apache keinen Schreibzugriff auf Dinge zu gewähren, auf die Sie nicht schreiben müssen, zum Beispiel Cache, Benutzer oder Download-Verzeichnisse, in die Sie Dinge hochladen können.

Übernehmen Sie also die Verantwortung für alles, beispielsweise sudo chown user:userim Website-Verzeichnis, und erteilen Sie den oanderen Teilen die erforderlichen Berechtigungen... .

Ersetzen Sie user:useres durch den gewünschten Benutzer und die gewünschte Gruppe.

Für die Verzeichnisse können Sie einen Befehl wie den folgenden verwenden:

sudo chmod o+rx /var/www/'directory' #make directory read and executable for other
sudo chmod o-wx /var/www/'directory'/'files' #remove write and execute from files
sudo chmod o+r  /var/www/'directory'/'files' #add read to files

Sie können auch einen Befehl verwenden find, der etwas fortgeschrittener ist, die Arbeit aber ein wenig erleichtert, etwa wie (nachdem Sie die Dateien mit besessen haben):

chown user:user /var/www/ -R # this is only an example.. 
  • Verzeichnisse
find /var/www/ -type d -exec sudo chmod o+rx {} \; 
  • Dateien
find /var/www/ -type f -exec sudo chmod o-wx {} \;
find /var/www/ -type f -exec sudo chmod o+r {} \;

Ich habe versucht, so ausführlich wie möglich zu sein. Bei Bedarf kann ich mehr erklären. Ungefähr in der Mitte geht es um Berechtigungen:

http://www.linuxforums.org/forum/servers/5270-apache-conf-html-permissions.html

verwandte Informationen