Preciso especificar o nome do caminho de um comando adicionado em '/ etc / sudoers', toda vez que eu o executo com 'sudo'?

1

Para uma linha que adicionei a /etc/sudoers , por exemplo:

t  ALL=(ALL) NOPASSWD: /path/to/myscript

/path/to está em PATH do usuário atual t , mas não em PATH de root .

$ sudo /path/to/myscript

funciona sem senha, mas eu preciso especificar o nome do caminho do script toda vez que eu executar o script com sudo ?

$ sudo myscript
[sudo] password for t: 
sudo: changeCpuFreq.sh: command not found

não funciona nem com senha, porque o caminho de myscript não está em PATH de root .

$ sudo -E env "PATH=$PATH" myscript
[sudo] password for t: 

funciona com senha, porque PATH de t é copiado para root , mas o problema é que ainda precisa de senha.

Obrigado.

    
por Tim 02.04.2018 / 01:54

1 resposta

1

Você não precisa, por si só, definir o nome do caminho completo em sudoers; no entanto, você deve fazê-lo por motivos de segurança.

Caso contrário, é bastante fácil obter privilégios de root; você só precisa invocar o binário outro com o mesmo nome, e presto , privilégios de raiz instantânea.

    
por 02.04.2018 / 02:32

Tags