Comando não encontrado quando executado como sudo

2

Estou correndo centos7. Eu instalei o fantoche. se eu escrever puppet como usuário, recebo uma saída apropriada. Se eu escrever sudo puppet , recebo command not found .

O mais estranho é que, se eu faço sudo su - e me tornei root, então escrevo puppet , eu recebo a saída normal que recebo quando eu corro com o usuário normal ...

[unu@centosmaster puppet]$ puppet
See 'puppet help' for help on available puppet subcommands
[unu@centosmaster puppet]$ sudo puppet
sudo: puppet: command not found
[unu@centosmaster puppet]$ sudo su -
Last login: Wed Sep 19 08:41:20 EDT 2018 on pts/0
[root@centosmaster ~]# puppet
See 'puppet help' for help on available puppet subcommands

Isso, para mim, não faz absolutamente nenhum sentido ...

A variável $PATH é a mesma para usuário root e normal.

    
por iamAguest 19.09.2018 / 15:19

1 resposta

2

De acordo com esta pergunta no Super User site, O CentOS higieniza o ambiente para um padrão sadio.

É por isso que alguns comandos não funcionam com sudo .

Parece que você deve fazer check-in em /etc/sudoers (editá-lo com visudo !!) para estas opções:

Defaults env_reset 
Defaults env_keep += "SOME_VARIABLE_NAME" # There should be one or more of these

Esta linha:

Defaults    secure_path = "some path"

substitui especificamente o $PATH do seu usuário por um predeterminado que evidentemente difere do que você está esperando.

Você pode querer modificar secure_path de acordo com suas necessidades ou apenas comentar a linha toda se achar que o usuário $PATH do seu usuário padrão deve ser usado, mesmo com sudo [command] .

    
por 19.09.2018 / 15:28