Olhando primeiro para o 500 500
, se você restaurar de um arquivo tar
(entre outros), o proprietário e o grupo serão preservados do sistema em que o arquivo foi criado: Suponho que o instalador faça isso, e se o usuário ou grupo restaurado não existir em seu sistema, o valor numérico será exibido.
Olhando agora para o PATH
, eu reproduzi isso no Ubuntu, e parece que sudo
modifica PATH
: no seu comando sudo echo $PATH
a variável PATH
foi expandida no shell original antes de chamar% código%. Existe um arquivo sudo
com uma entrada /etc/sudoers
, e isso parece ser o que é usado.
Se você usar "defaults secure_path="..."
, terá uma ideia melhor do sudo sh -c 'echo $PATH'
que está sendo usado. Observe que usei deliberadamente PATH
em vez de sh
para ignorar alguns dos arquivos de inicialização, o que pode mudar as coisas, embora bash
tenha, claro, alguns dos seus próprios.
No Ubuntu, a linha sh
contém secure_path
, mas o CentOS pode ser diferente (ambos são derivados do Debian, mas de acordo com /user/local/bin
o SELinux pode sobrescrever algumas entradas). Tanto quanto eu posso ver, você tem pelo menos quatro opções: -
- Modifique
man sudoers
para incluir '/ usr / local / bin'. - Coloque o link em um dos diretórios definidos em
secure_path
. - Use
secure_path
em vez desu -c "{command} {parameters}"
. - Use
sudo {command} {parameters}
para obter uma raizsudo -s
com a mesma inicialização debash
do shell original e, em seguida, chame seu executável de lá e saia depois.
Também encontrei muitas discussões e outras possíveis soluções aqui .