Por que diferentes scripts de comando são usados para o mesmo comando quando executados como usuário normal e quando são executados como usuário root?

0

Eu vejo o local do script para o comando date para um usuário normal, mostra

which date
/bin/date

Mas quando eu executo o mesmo comando do root, ele mostra a saída /usr/bin/date . Por que isso?

    
por Vedant Pareek 28.09.2018 / 17:19

2 respostas

1

Se which date produzir resultados diferentes para root e outro usuário, é provável que eles tenham valores diferentes para PATH . O usuário normal tem /bin antes de /usr/bin (ou sem /usr/bin ) e root tem /usr/bin/ antes de /bin (ou sem /bin ).

Você pode verificar isso executando:

echo ${PATH}

como root e o usuário não raiz.

A variável PATH é uma lista de diretórios delimitada por dois-pontos em que o shell procura comandos quando o caminho absoluto não é fornecido. O shell pesquisará esses diretórios, da esquerda para a direita, na ordem em que estão listados. Se o shell encontrar um comando em um diretório, ele o executará. O comando which faz uma caminhada semelhante e relata a primeira correspondência encontrada.

    
por 28.09.2018 / 17:36
0

Depende da variável $PATH do usuário em que você está atualmente logado. Se o script estiver em mais de um diretório, será usado o primeiro encontrado, neste caso $PATH da raiz deve ser algo como

PATH="/usr/bin:/bin:... 

e para o usuário deve ser algo como

 PATH="/bin...
    
por 28.09.2018 / 17:39