Que PATH o comando 'sudo' usa para procurar por 'command'?

3

Eu instalei o eclipse no meu diretório home e coloquei o caminho em PATH in ~/.profile .

Então funciona por

$ eclipse 

Mas quando ligar com sudo , eclipse não será encontrado:

$ sudo eclipse 
sudo: eclipse: command not found

Qual PATH faz sudo eclipse usar para pesquisar eclipse ? É o usuário root ' PATH ?

Obrigado.

    
por Tim 06.07.2016 / 01:26

1 resposta

5
Por padrão,

sudo usa um mínimo PATH , para torná-lo seguro para o usuário root . Isso não é necessariamente o mesmo que o PATH que você obteria fazendo login como o usuário root , ou fazendo

sudo su -

Por exemplo, em versões mais recentes da Red Hat, notei que o caminho omite /usr/local/bin .

A página de manual resume isso em uma seção intitulada Notas de segurança :

sudo tries to be safe when executing external commands.

There are two distinct ways to deal with environment variables. By default, the env_reset sudoers option is enabled. This causes commands to be executed with a minimal environment containing TERM, PATH, HOME, SHELL, LOGNAME, USER and USERNAME in addition to variables from the invoking process permitted by the env_check and env_keep sudoers options. There is effectively a whitelist for environment variables.

Leitura adicional:

por 06.07.2016 / 01:41

Tags