Como sobrescrever uma variável de ambiente PATH no sudo?

5

Eu configurei o PATH em /etc/profile . Eu não tenho nenhum problema no caso do usuário geral, mas o PATH não vai quando eu me tornar a autoridade raiz em sudo .

O que você faria para substituir o PATH que é definido por /etc/profile mesmo se eu me tornar a autoridade raiz em sudo ?

    
por freddiefujiwra 25.05.2009 / 05:49

4 respostas

9

O Sudo redefine o PATH, junto com muitas outras variáveis de ambiente, por motivos de segurança. Não importa o que está definido em / etc / profile, a menos que você execute sudo -i .

A página de manual do sudo, em OBSERVAÇÕES DE SEGURANÇA, fornece uma visão sobre as implicações de segurança, juntamente com as opções que você precisa mexer em seu arquivo / etc / sudoers para modificar essas restrições, depois de entender as implicações de fazê-lo. / p>     

por 25.05.2009 / 06:15
3
O caminho do

root não é alterado por / etc / profile (security ...)

você precisa configurá-lo separadamente (por exemplo, no ~ / .bash_profile do root)

    
por 25.05.2009 / 06:22
1

atualização:

Se você quiser adicionar um PATH específico ao PATH padrão da sua conta "root" ao usar sudo ou sudo -i:

Com o Ubuntu 10.04.x LTS:

Modifique adequadamente os arquivos / etc / environment e etc / login.defs .

Com o Ubuntu 12.04.x LTS:

Modifique adequadamente os arquivos / etc / environment e /etc/login.defs , bem como a linha Padrões secure_path do arquivo / etc / sudoers (usando visudo).

Se você estiver usando uma GUI e não se sentir confortável com o editor nano no modo de texto, use o seguinte comando para editar o arquivo / etc / sudoers com o gedit:

sudo EDITOR = gedit visudo

Quando você salvar o arquivo / etc / sudoers, o visudo verificará a sintaxe de suas modificações.

Se tudo estiver OK, você voltará à sessão do terminal.

Se houver um erro, pressione a letra "e" para editar o arquivo / etc / sudoers novamente e corrija sua modificação.

Eu não tentei com o Ubuntu 12.10 ainda, mas eu acho que (e espero) é a mesma coisa que para o Ubuntu 12.04.x!

Felicidades.

    
por 27.02.2013 / 03:04
0

Caso suas distribuições do Linux tenham o plug-in de política de segurança ativado, o PATH pode ser substituído por secure_path no arquivo sudoers , portanto, você precisa editá-lo em sudo visudo e adicioná-lo à lista.

Você pode verificar se esse é o caso:

$ sudo sudo -V | grep PATH
Value to override user's $PATH with: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

Como alternativa, use:

sudo "PATH=$PATH" foo

Veja: Por que as variáveis do PATH são diferentes quando executadas via sudo e su? no Unix SE

    
por 24.12.2015 / 19:17