Woher wissen wir, dass ein Verzeichnis mit Apache beschreibbar ist?

21

Mir wurde gesagt, dass ich einen Bilderordner und einen Assets-Ordner erstellen soll und dass ich sicherstellen muss, dass: "Sie sind Apache-beschreibbar". Mir wurde auch gesagt, dass ich das App / Runtime-Verzeichnis im Web beschreibbar machen soll. Ist das dasselbe wie mit Apache beschreibbar? Wenn ja:

Wie kann ich das sofort tun oder das wissen?

Dabei ls -lbekomme ich so etwas wie:

drwxr-xr-x 13 user user 4096 2011-08-26 10:23 app
drwxr-xr-x 4 user user 4096 2011-08-26 10:23 runtime
drwxr-xr-x 2 user user 4096 2011-08-26 11:11 images
drwxr-xr-x 2 user user 4096 2011-08-26 11:12 assets
MEM
quelle

Antworten:

24

Apache ist ein Programm, das im Hintergrund läuft. Apache wird ursprünglich vom Benutzer gestartet root(auch genannt root-process). Dadurch werden root-processmehrere untergeordnete Prozesse gestartet, die die Clientanforderungen verarbeiten. Aus Sicherheitsgründen werden die untergeordneten Prozesse nicht vom Benutzer ausgeführt, rootsondern als Benutzer mit minimalen Berechtigungen. Normalerweise heißt dieser Benutzer apacheoder www-data.

Um herauszufinden, welcher Benutzer dies für Apache v1 ist:

ps -ef | grep httpd | grep -v grep

oder für Apache v2:

ps -ef | grep apache | grep -v grep

Das Ergebnis für Apache 2 wird ungefähr so ​​aussehen:

wurzel 5001 1 0 07:21? 00:00:00 / usr / sbin / apache2 -k start
www-data 5021 5001 0 07:21? 00:00:00 / usr / sbin / apache2 -k start
www-data 5022 5001 0 07:21? 00:00:00 / usr / sbin / apache2 -k start
www-data 5023 5001 0 07:21? 00:00:00 / usr / sbin / apache2 -k start

In diesem Fall ist der Benutzer / die Gruppe www-data

Um ein Verzeichnis für den Webserver beschreibbar zu machen, müssen wir den Eigentümer oder die Gruppe des Verzeichnisses auf den Eigentümer oder die Gruppe von Apache setzen und die Schreibberechtigung dafür aktivieren. Normalerweise setzen wir das Verzeichnis so, dass es zur Apache-Gruppe gehört ( apacheoder `www-data oder welcher Benutzer auch immer zum Starten der untergeordneten Prozesse verwendet wird) und aktivieren die Schreibberechtigung für die Gruppe.

chgrp www-data /path/to/mydir
chmod g+w /path/to/mydir

( www-dataist der Name, den Sie mit dem psobigen Befehl gefunden haben).

Bezüglich:

2) Ich wurde auch angewiesen, das App / Runtime-Verzeichnis web-beschreibbar zu machen. Ist das dasselbe wie mit Apache beschreibbar?

Ja, dies ist ein Verzeichnis, das Sie für die von Apache erwartete Gruppe als beschreibbar festlegen müssen. Wahrscheinlich wird dies irgendwo in sein /var/www/oder es wird als virtueller Host in /etc/apache2/sites-enabled/und / oder gesetzt/etc/apache2/sites-available

Rinzwind
quelle
Vielen Dank. Gibt es eine Möglichkeit, das Verzeichnis mit mkdir zu erstellen und gleichzeitig diese Berechtigungen zu erteilen?
MEM
Stimmt es, dass wir auch Folgendes tun können: chmod -R o + w / oder / path / here? (Die Option -R ist offensichtlich). ?
MEM
Ja 1 Methode wäre:mkdir dirname && chgrp www-data dirname
Rinzwind
@MEM ja. RErledigt alle Verzeichnisse, von denen aus Sie den Befehl ausführen. Es gibt viele Möglichkeiten, dies zu tun;)
Rinzwind
2
ps -ef | grep [a]pacheist eine gebräuchliche Redewendung, um die Störlinie grepin der Ausgabe zu vermeiden .
Enzotib