Come facciamo a sapere che una directory è apache scrivibile?


21

Mi è stato detto che avrei dovuto creare una cartella di immagini e una cartella di risorse e che dovevo assicurarmi che: "sono apache scrivibili". Mi è stato anche detto di rendere la directory app / runtime scrivibile sul web. È lo stesso di Apache scrivibile? Se è così:

Come posso farlo subito o saperlo?

Facendo un ls -lqualcosa che sto diventando come:

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

Risposte:


24

Apache, è un programma in esecuzione in background. Apache è stato originariamente avviato dall'utente root(chiamato anche root-process). Ciò root-processavvia diversi processi figlio che gestiscono le richieste del client. Per motivi di sicurezza, i processi figlio non vengono eseguiti dall'utente rootma come utente con privilegi minimi. Di solito questo utente è chiamato apacheo www-data.

Per sapere quale utente è per apache v1:

ps -ef | grep httpd | grep -v grep

o per apache v2:

ps -ef | grep apache | grep -v grep

Il risultato per apache 2 sarà simile al seguente:

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

In questo caso l'utente / gruppo è www-data

Quindi, al fine di rendere scrivibile una directory dal server web, dobbiamo impostare il proprietario o il gruppo della directory sul proprietario o sul gruppo di Apache e abilitarne l'autorizzazione in scrittura. Di solito, impostiamo la directory in modo che appartenga al gruppo Apache ( apacheo `www-data o qualunque utente venga utilizzato per avviare i processi figlio) e abilitiamo il permesso di scrittura per il gruppo.

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

( www-dataè il nome che hai trovato con il pscomando sopra).

Per quanto riguarda:

2) Mi è stato anche detto di rendere la directory app / runtime scrivibile sul web. È lo stesso di Apache scrivibile?

Sì, questa è una directory che devi impostare scrivibile per il gruppo che Apache si aspetta. Probabilmente questo sarà da qualche parte /var/www/o è impostato come host virtuale in /etc/apache2/sites-enabled/e / o/etc/apache2/sites-available


Molte grazie. C'è un modo per creare la directory con mkdir e, allo stesso tempo, dare quelle autorizzazioni?
MEM,

È vero che possiamo anche fare: chmod -R o + w / o / path / here? (ovviamente l'opzione -R). ?
MEM,

Sì 1 metodo sarebbe:mkdir dirname && chgrp www-data dirname
Rinzwind

@MEM sì. Reseguirà tutte le directory da cui viene emesso il comando. Ci sono molti modi per farlo;)
Rinzwind,

2
ps -ef | grep [a]pacheè un linguaggio comune per evitare la greplinea spuria nell'output.
enzotib,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.