[Ubuntu-BR] sudo versus PATH

rodrigodelimavieira em gmail.com rodrigodelimavieira em gmail.com
Sexta Março 11 18:09:03 UTC 2011


Quase sempre preciso executar scripts php que necessitam de privilégios
administrativos no linux, para isso uso "sudo -s" para logar como
administrador e php /caminho/para/o/script.php para executar o script.

Mas como utilizo o Zend Server CE, o path para o php e outros binários
relacionados é /usr/local/zend/bin, e este path não está presente após o
sudo -s, como podem ver abaixo:

rodrigo em rodrigo-laptop:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/zend/bin:/usr/local/zend/share/ZendFramework/bin
rodrigo em rodrigo-laptop:~$ sudo -s
[sudo] password for rodrigo:
root em rodrigo-laptop:~# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin


Lendo a documentação do sudo, vi que o comando "env_reset" é responsável por
redefinir diversas configurações de ambiente, inclusive o PATH se o mesmo
não estiver listado na sessão "Environment variables to preserve:" da saída
do comando "# sudo -V". E no meu ubuntu (10.10 - maverick) está listado:

# sudo -V
...
Environment variables to preserve:
XAUTHORIZATION
XAUTHORITY
TZ
PS2
PS1
PATH
MAIL
LS_COLORS


Isso é um BUG ou eu interpretei mal as informações da manpage do sudo?
Alguém sabe alguma forma de contornar este problema? Sendo que eu não
gostaria de alterar as configurações padrões, apenas de pegar o PATH padrão
que o sudo define e acrescentar os paths do Zend Server, por exemplo:
PATH="$PATH:/usr/local/zend/bin"


Obrigado.



More information about the ubuntu-br mailing list