o perfil bash funciona para o usuário, mas não para o sudo

8

Eu modifiquei meu .profile para incluir uma pasta se uma unidade flash estiver conectada. Ao executar o comando como o usuário, ele funciona bem, mas informa que o script deve ser executado pelo sudo (é isso que eu quero). No entanto, quando eu tento executá-lo com o sudo recebo "comando não encontrado"

Eu tenho um link simbólico (flash) na minha pasta / var / www apontando para minha / media / flash drive. (deixa pra lá essa configuração já que é só para dev)

este é o perfil do meu usuário:

# set PATH so it includes flash scripts
if [ -d "/var/www/flash/scripts" ] ; then
    PATH="/var/www/flash/scripts:$PATH"
fi

ao tentar rodar como sudo eu recebo:

sudo: script: command not found    

alguma ideia?

    
por user564448 09.11.2012 / 17:48

4 respostas

3

Quando você executa o script como sudo , você está tentando acessar o root. Portanto, o $HOME/.profile não será acessado em vez de /root/.profile será acessado.

Portanto, faça as alterações como você fez em $HOME/.profile to /root/.profile . Para criar /root/.profile . Use os seguintes comandos.

sudo su
cd /root
touch .profile

depois de fazer as alterações, tente executar o script.

ou edite $HOME/.bashrc e adicione a seguinte linha

alias sudo='sudo env PATH=$PATH $@'

Espero que isso ajude.

    
por devav2 09.11.2012 / 18:24
2

Você pode preservar o valor de $PATH ao usar sudo . Use visudo para adicionar $PATH à lista de variáveis a serem mantidas. Uma linha como a seguinte em /etc/sudoers deve fazer o truque:

Defaults env_keep += "PATH"
    
por Dennis Kaarsemaker 11.11.2012 / 10:31
1

esse é o comportamento do sudo no ubuntu ..

por exemplo, execute o seguinte comando

echo 'echo $PATH' | sh

e que este

echo 'echo $PATH' | sudo sh 

você vê a saída é diferente! para evitar caminhos diferentes, coloque o seguinte em seu ~ / .bashrc

alias sudo='sudo env PATH=$PATH'
    
por Christopher Jahnke 09.11.2012 / 18:25
-1

Você também pode mover seu arquivo em um diretório usado do sudoers:

    sudo mv $HOME/bash/script.sh /usr/sbin/ 
    
por LeGilles 25.03.2015 / 18:21

Tags