Quando executo o ps -efH
comando para listar todo o processo, vejo o Apache executando como root
e parece ter subprocessos executando como www-data
. Aqui está o trecho:
root 30117 1 0 09:10 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 30119 30117 0 09:10 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 30120 30117 0 09:10 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 30121 30117 0 09:10 ? 00:00:00 /usr/sbin/apache2 -k start
Posso fazer o Apache e todos os subprocessos serem executados como usuários diferentes apache2d:apache2d
? Se sim, como? Li em algum lugar que as configurações para isso podem ser encontradas, /etc/apache2/httpd.conf
mas esse arquivo parece estar vazio? Isso pode ser feito alterando o proprietário e o grupo do /etc/init.d/apache2
script e configurando o sinalizador setuid nele?
fonte
@bahamat explica muito bem, mas vou adicionar um pouco mais de detalhes.
No curso da operação normal, o processo apache de propriedade da raiz não executará nenhuma operação real que não seja a escuta na porta 80 e o encaminhamento de conexões de entrada para seus
www-data
filhos (com segurança não privilegiados, como o usuário).A localização do arquivo de configuração principal depende das opções em tempo de compilação e varia de acordo com a distribuição, mas
/etc/apache2/apache2.conf
é um bom palpite inicial.Além disso, se você estiver configurando um sistema de hospedagem para web multiusuário, convém procurar no SuExec e no fcgid para que o processo apache de cada usuário da hospedagem seja executado como o mesmo usuário - para que, se um usuário negligencie sua segurança, outro os usuários não serão afetados.
fonte
No Ubuntu, pelo menos, as configurações para isso estão em
/etc/apache2/envvars
. Ajustá-los, reinicie o apache e você estará pronto.fonte
Além disso, confira o Apache2 ITK MPM .
Ele bifurca um thread do Apache com o
uid
/ atribuídogid
, isso permite que você continue usandomod_php
. Não maischmod
/chown
etc.fonte
mpm_itk
o que é uma melhoria significativa sobre suexec / fcgidMac OS X:
O que funcionou para mim foi entrar no arquivo de configuração do apache:
Neste arquivo, procurei Usuário ou Grupo
e esbarrou em:
Eu mudei para o que sempre usuário / grupo que eu precisava (no meu caso, para o usuário / grupo que é o proprietário dos meus arquivos de aplicativos da web que você pode ver. E isso você pode verificar usando o simples 'ls -l' comando)
fonte