Por que o sudo não consegue encontrar um comando depois que o adicionei ao PATH?

19

Quero adicionar algum comando ao PATH para que eu possa usá-los convenientemente, como:

export $PATH = "$PATH:/opt/storm/bin"

mas às vezes stormprecisa de autoridade root, mas quando eu o uso sudo, o Ubuntu não consegue encontrar o comando.

sudo storm nimbus

como posso encontrar esses comandos quando uso sudo?

Roger
fonte
O que são permissões nessa pasta e arquivo?
Sergiy Kolodyazhnyy

Respostas:

29

Você precisa adicionar o caminho ao sudocaminho.

Execute o comando sudo visudo

você verá uma linha como esta:

Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:$

Agora adicione o caminho do seu comando aqui e isso deve funcionar.

Por exemplo:

$ sudo storm
sudo: storm: command not found

Agora adicione o caminho como acima:

$ sudo visudo 

secure_path="......:/opt/storm/bin"

salvar e sair.

agora sudo stormfuncionará normalmente.

Nota Você também deve adicionar o caminho ao caminho padrão em /etc/profile.

Maythux
fonte
Muito obrigado por este. Ajudou e eu aprendi com isso!
precisa saber é o seguinte
0

Eu acho que você criou o alias no nível do usuário. É por isso que os atalhos estão disponíveis apenas no nível do usuário.

Você deve adicionar essa linha de comando do alias ao arquivo .bashrc na pasta / root e não no /home/user/.bashrc(este arquivo .bashrc pertence à conta do usuário que não é root).

Para que você possa usar seu comando alias diretamente no shell quando estiver logado como root.

Ornitorrinco Anônimo
fonte
1
que tal /etc/profile? Acrescento export $PATH = "$PATH:/opt/storm/bin"neste arquivo, penso que este é global, mas eu ainda não consigo encontrar este comando
roger
Pode ser esta pergunta stackoverflow pode resolver seu problema :)
Anônimo Platypus