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

21

Foi-me dito que eu deveria criar uma pasta de imagens e uma pasta de ativos, e que eu precisava ter certeza de que: "eles são graváveis ​​no apache". Também fui instruído a tornar o diretório app / runtime gravável na web. É o mesmo que o apache gravável? Se então:

Como posso fazer isso de uma vez ou saber disso?

Fazendo uma ls -lEstou ficando 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
MEM
fonte

Respostas:

24

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

Para descobrir qual usuário é 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 do apache 2 será mais ou menos assim:

raiz 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

Portanto, 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. Normalmente, configuramos o diretório para pertencer ao grupo Apache ( apacheou `www-data ou qualquer usuário que seja usado para iniciar os processos filhos) e ativamos 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 pscomando acima).

A respeito de:

2) Também fui instruído a tornar o diretório app / runtime gravável na web. É o mesmo que o apache gravável?

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

Rinzwind
fonte
Muito obrigado. Existe uma maneira de criar o diretório com mkdir e, ao mesmo tempo, conceder essas permissões?
MEM
É verdade que também podemos fazer: chmod -R o + w / ou / path / here? (a opção -R sendo obviamente). ?
MEM
Sim 1 método seria:mkdir dirname && chgrp www-data dirname
Rinzwind 26/08
@MEM yes. Rfará todos os diretórios de onde você emite o comando. Há uma série de maneiras de fazer isso;)
Rinzwind
2
ps -ef | grep [a]pacheé um idioma comum para evitar a greplinha falsa na saída.
enzotib