Diferença em logins sudo e exibição rápida

0

Qual é a diferença entre sudo -s e sudo -i e por que eles me dão shells diferentes? Parece que -s me mantém dentro de bash e -i me dá sh .

No MacOSX High Sierra 10.13, se eu digitar sudo -s em um terminal e inserir minha senha, receberei root como meu nome de usuário, mas com um sinal de dólar no prompt:

user1@mymachine:~$ sudo -s
**root@mymachine:~$**

Mas se eu digitar sudo -i , obtenho:

user1@mymachine:~$ sudo -i
Password:<br/>
**mymachine:~ root#**

Por que não recebo o sinal de hash # se eu for root no exemplo acima com sudo -s ? Eu não sou verdadeiramente raiz?
As variáveis de ambiente são diferentes entre os dois?

    
por DrKumar 08.03.2018 / 23:55

1 resposta

0

A primeira coisa que você precisa entender é que sudo -s é equivalente a sudo -s root e sudo -i é equivalente a sudo -i root . Sempre que você omitir um usuário do sudo, ele pressupõe que você esteja direcionando o usuário root.

sudo -s executa um shell como o usuário de destino, enquanto sudo -i efetua login como o usuário de destino.

Sempre que você executar sudo -s , estará efetivamente mudando seu shell para o shell do usuário root, enquanto sempre que você executar sudo -i , estará efetivamente efetuando logout do usuário atual e efetuando login como root. Isso é importante saber, porque sempre que você estiver alterando o shell para o shell do usuário root, ainda estará mantendo as informações de exportação do usuário. Quando você executa sudo -i , você está efetuando logout do seu usuário e efetuando login como root. Isso significa que você adota a configuração do shell do usuário root.

Isto não é relacionado, mas você deve evitar mudar seu usuário para root porque você pode acidentalmente quebrar coisas, você deve apenas sudo todos os comandos que precisam de escalação, mesmo que isso seja irritante. Se você realmente deseja mudar para um shell de root, você deve executar su , o que permitirá que você efetue login como root.

    
por 09.03.2018 / 00:05