Espero que o echo $HOME
apenas leia a variável de ambiente definida por qualquer shell que inicie httpd
(o processo do Apache). A menos que algo faça export HOME=/home/whatever
, o valor da variável de ambiente HOME permanecerá o mesmo.
Não sei se o seu último parágrafo está correto. No que diz respeito a nenhum problema de segurança, PATH
é definido como normaluser
? E se / home / normaluser / bin contiver um executável ls
muito especial, que faz coisas incomuns, como produzir uma saída HTTP para download de qualquer arquivo no sistema? Na minha configuração do Apache / PHP, o PATH é definido como /usr/local/bin:/bin:/usr/bin:/u/bediger/bin
para o programa PHP.
Sua afirmação sobre o problema principal, ler / escrever algo do diretório pessoal, também não faz sentido. O valor de HOME não é importante para nomes de arquivos parcialmente qualificados, o diretório de trabalho atual é importante. httpd
parece definir isso corretamente para o meu programa PHP de teste. Minha configuração do Apache / PHP define o diretório de trabalho atual para a raiz do documento, que é onde meu PHP mora.
<html>
<head><title>Test</title></head>
<body>
<p>
<?php
echo "Home: " . 'echo \$HOME';
echo "<br />";
echo "Id: " . 'id';
echo "<br />";
echo "PWD: " . 'pwd';
echo "<br />";
echo "PATH: " . 'echo \$PATH';
?>
</p>
</body>
</html>