Desejo proteger um diretório de upload de arquivos no meu servidor, conforme descrito aqui de maneira bonita, mas tenho um problema antes de seguir estas instruções. Não sei qual usuário Apache está executando.
Encontrei uma sugestão de que você pode procurar no httpd.conf e haverá uma linha "Usuário", mas não existe essa linha no meu arquivo httpd.conf, então acho que o Apache está sendo executado como usuário padrão. Mas não consigo descobrir o que é isso.
Então, minha pergunta é (são):
- como faço para descobrir qual é o usuário padrão
- preciso alterar o usuário padrão
- se a resposta for sim e eu altero o usuário padrão editando o httpd.conf, é provável que estrague tudo?
Obrigado!
apache-2.2
eikonomega
fonte
fonte
root
ewww-data
. Como você dá ao grupo Apache "certo" uma permissão para acessar algo?Respostas:
ps aux | egrep '(apache|httpd)'
normalmente mostra como o apache está sendo executado.Normalmente, você não precisa alterar o usuário padrão, "ninguém" ou "apache" são normalmente bons usuários. Contanto que não seja "raiz";)
edit: comando mais preciso para capturar binários apache também
fonte
apache
mas umaroot
também./usr/sbin/apache2 -k start
), um usuário éroot
e os outros doiswww-data
. Devo me preocupar?Você pode tentar o seguinte comando:
fonte
Use
apachectl -S
, que mostrará algo usuário e grupo do Apache, algo como isto:fonte
De acordo com o ubuntuforums.org , no Ubuntu o usuário padrão do apache2 é
www-data
.Visto como verdade no Ubuntu 13.10 Saucy.
De Lars Noodén no fórum acima.
Para distribuições baseadas no Red Hat, seria (normalmente seu usuário executando httpd é
apache
):fonte
Sei que este é um post antigo, mas ainda está listado como sem resposta, portanto, farei uma sugestão. Se você não conseguir encontrar qual usuário ou grupo o Apache está executando, talvez tente abrir o arquivo httpd.conf. Deve haver uma entrada para "Usuário" e "Grupo". Você não apenas pode ver qual usuário o Apache deve estar executando como também pode alterá-lo se sentir a necessidade.
fonte
Você pode incluir uma linha de código no seu script PHP:
fonte
Esse código - mais ou menos - lista alfabeticamente todos os usuários não raiz executando processos que contêm
apache
(ou cujo nome contémapache
)fonte
ps aux | grep apache
lo enquanto estiver em execução.NOTA: Essa é a mesma resposta que eu dei no Stackoverflow .
fonte
Ou você pode verificar o arquivo de configuração apache e procurar o proprietário e o grupo.
fonte
Como sugerido por Noyo aqui :
E depois:
fonte
Uma abordagem alternativa, pelo menos para as distribuições baseadas no Debian / Ubuntu, é usar o mesmo método que o Apache usa para definir seu usuário e grupo: source
/etc/apache2/envvars
!Se você quiser ser extravagante, poderá suprimir erros se o arquivo não for encontrado e fornecer um valor padrão:
fonte
Descobri que a maioria das soluções oferecidas aqui é específica do sistema ou da configuração (em particular, a maioria das soluções não funciona no MacOS) e algumas contam com o usuário que sabe onde estão os arquivos de configuração do Apache. .
Então, trapaceio um pouco e deixo o próprio Apache me dizer o que é o quê.
O comando simples
apachectl -S
informa o que você precisa saber sobre uma instância em execução do Apache, e seus resultados podem ser analisados facilmente. Aqui está a minha solução, que eu uso na parte superior de algunsbash
scripts para determinar uma variedade de coisas que posso precisar a qualquer momento ...Esses valores podem ser usados como tais:
fonte
Encontrei este comando nos documentos do CakePHP .
Agora
HTTPDUSER
mantém o nome de usuário do usuário que executa o servidor;echo $HTTPDUSER
no meu caso, gera -www-data
usando rlerdorf / php7dev .fonte
Use lsof e passe a porta que o apache é escutado como argumento. Consulte a coluna USER para ver se o appache do usuário está sendo executado como.
fonte