Por que os caminhos de script raiz sudo su e bash são diferentes? [duplicado]

0

Nota de administração: Esta questão é diferente, então porque é que o caminho sudo é diferente do su porque as variáveis ambientais em um script bash executado no cron não aparecem como variáveis ambientais definidas para usuários como sudo ou como su. (Veja tudo depois do MAS.)

Ao executar o sudo su e mostrar caminhos, eu tenho / usr / local / bin no meu caminho. Eu tenho vários aplicativos personalizados que coloco nessa pasta com a intenção de disponibilizá-los para todo o sistema. Em etc / sudoers, / usr / local / bin está no caminho_seguro.

MAS

Ao executar um script bash executado como root através de uma tarefa cron, o / usr / local / bin aparentemente não é preservado no caminho, pois eu recebo o comando não encontrado ao tentar executar aplicativos que estão instalados nele, apesar do fato de eles serem em / etc / sudoers.

Como faço para que esses aplicativos fiquem disponíveis para o root?

Ubuntu 16.10

    
por user3260912 28.12.2016 / 23:29

1 resposta

2

O ambiente em um trabalho cron é, como você está vendo, diferente daquele em um shell chamado por su - ou sudo -s ou sudo /path/to/executable . Você pode, no entanto, definir variáveis dentro da tabela cron:

PATH="$PATH:/usr/local/bin"
0 0 * * * /path/to/run-me-at-midnight-with-path-changes.sh
    
por 28.12.2016 / 23:40