Skąd wiemy, że katalog można zapisać w Apache?

21

Powiedziano mi, że powinienem utworzyć folder obrazów i folder zasobów oraz że muszę upewnić się, że: „można zapisywać w apache”. Powiedziano mi również, aby umożliwić zapisywanie w katalogu app / runtime w sieci. Czy to to samo, co zapisywanie w Apache? W takim razie:

Jak mogę to zrobić od razu lub o tym wiedzieć?

Robię to ls -ldostaję coś takiego:

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
źródło

Odpowiedzi:

24

Apache to program działający w tle. Apache jest początkowo uruchamiany przez użytkownika root(nazywany również root-process). To root-processuruchamia wiele procesów potomnych, które obsługiwać żądania klientów. Ze względów bezpieczeństwa procesy potomne nie są uruchamiane przez użytkownika, rootale jako użytkownik z minimalnymi uprawnieniami. Zwykle ten użytkownik ma na imię apachelub www-data.

Aby dowiedzieć się, kto to jest dla apache v1:

ps -ef | grep httpd | grep -v grep

lub dla Apache v2:

ps -ef | grep apache | grep -v grep

Wynik dla Apache 2 będzie mniej więcej taki:

root 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

W tym przypadku użytkownikiem / grupą jest www-data

Aby serwer mógł zapisywać katalog w katalogu, musimy ustawić właściciela lub grupę katalogu na właściciela lub grupę Apache i włączyć dla niego uprawnienia do zapisu. Zazwyczaj ustawiamy katalog, aby należał do grupy Apache ( apachelub `www-data lub dowolny inny użytkownik używany do uruchamiania procesów potomnych) i umożliwiamy grupie uprawnienie do zapisu.

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

( www-datato nazwa znaleziona za pomocą pspowyższego polecenia).

Jeżeli chodzi o:

2) Powiedziano mi również, aby umożliwić zapisywanie w katalogu app / runtime w sieci. Czy to to samo, co zapisywanie w Apache?

Tak, jest to katalog, w którym musisz ustawić zapis w grupie, której oczekuje Apache. Prawdopodobnie będzie to gdzieś wewnątrz /var/www/lub zostanie ustawione jako wirtualny host w /etc/apache2/sites-enabled/i / lub/etc/apache2/sites-available

Rinzwind
źródło
Wielkie dzięki. Czy istnieje sposób na utworzenie katalogu za pomocą mkdir i jednocześnie nadanie tych uprawnień?
MEM,
Czy to prawda, że ​​możemy także: chmod -R o + w / lub / path / here? (oczywiście opcja -R). ?
MEM,
Tak 1 metoda to:mkdir dirname && chgrp www-data dirname
Rinzwind
@MEM tak. Rzrobi wszystkie katalogi, z których wydasz polecenie. Jest na to wiele sposobów;)
Rinzwind
2
ps -ef | grep [a]pachejest wspólnym idiomem pozwalającym uniknąć fałszywej greplinii na wyjściu.
enzotib