Como sabemos que um diretório é apache gravável?

16

Foi-me dito que eu deveria criar uma pasta de imagens e uma pasta de recursos, e que eu precisava ter certeza de que: "elas são graváveis pelo apache". Também me disseram para fazer o diretório app / runtime escrever na web. É o mesmo que o apache gravável? Em caso afirmativo:

Como posso fazer isso imediatamente ou saber disso?

Fazendo ls -l , estou recebendo algo como:

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
    
por MEM 26.08.2011 / 12:21

1 resposta

22

Apache, é um programa em execução em segundo plano. O Apache é originalmente iniciado pelo usuário root (também chamado de root-process ). Esse root-process lança vários processos filhos que manipulam as solicitações do cliente. Por motivos de segurança, os processos filhos não são executados pelo usuário root , mas como um usuário com privilégios mínimos. Normalmente, esse usuário é denominado apache ou www-data .

Para descobrir qual usuário é esse para o apache v1:

ps -ef | grep httpd | grep -v grep

ou para o apache v2:

ps -ef | grep apache | grep -v grep

O resultado para o apache 2 será algo assim:

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

Nesse caso, o usuário / grupo é www-data

Assim, para tornar um diretório gravável pelo servidor da Web, precisamos definir o proprietário ou o grupo do diretório como proprietário ou grupo do Apache e ativar a permissão de gravação para ele. Normalmente, configuramos o diretório para pertencer ao grupo Apache ( apache ou 'www-data ou qualquer usuário usado para iniciar os processos filhos) e habilitar a permissão de gravação para o grupo.

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

( www-data é o nome que você encontrou com o comando ps acima).

Em relação a:

  

2) Também me disseram para fazer o diretório app / runtime escrever na web. É o mesmo que o apache gravável?

Sim, este é um diretório que você precisa definir como gravável no grupo que o Apache espera. Provavelmente, isso estará em algum lugar em /var/www/ ou será definido como um host virtual em /etc/apache2/sites-enabled/ e / ou /etc/apache2/sites-available

    
por Rinzwind 26.08.2011 / 12:48