Quebra-cabeça sobre sudo e caminhos

3

Eu tenho alguns programas que estão em /usr/local/bin , que requerem privilégios de root para serem executados.

Se eu correr

sudo my_prog 

Eu obtenho

sudo: my_prog: command not found

Eu tenho que escrever

sudo /usr/local/bin/my_prog 

para o programa funcionar.

Alguém poderia me explicar por que eu tenho que fazer isso? /usr/local/bin está na $PATH da raiz e na minha.

    
por Vérace 03.02.2015 / 18:24

1 resposta

2

Você pode ter /usr/local/bin na $PATH da raiz mas apenas fazendo sudo não lhe dá o perfil do root onde PATH é setado

você vai conseguir depois de logar como root com

su -

ou

sudo -i

Eles te dão um shell de root.

Se você quiser ficar em uma linha, tente usar

sudo su -c 'my_prog'

se isso não funcionar, aplique-o com -l

sudo su -l -c 'my_prog'
    
por 03.02.2015 / 19:23

Tags