Qual é a diferença entre 'su -', 'sudo bash' e 'sudo sh'?
29
Eu gostaria de saber qual é a diferença entre
su -
sudo bash
sudo sh
Não consigo fazer o login como root durante o processo su -porque não tenho a senha de root - quero dizer, tenho minha senha de usuário com a qual posso, sudo "command" mas essa senha não funciona. su -
Posso fazer login como root com sudo basha minha senha de usuário e consigo fazer login enquanto fazendo, sudo shmas depois recebo um prompt de comando neste formulário
#
No Linux (e Unix em geral), existe um superusuário chamado Root . O superusuário pode fazer tudo e qualquer coisa e, portanto, fazer o trabalho diário como superusuário pode ser perigoso. Você pode digitar um comando incorretamente e destruir o sistema. Idealmente, você executa como um usuário que possui apenas os privilégios necessários para a tarefa em questão. Em alguns casos, isso é necessariamente raiz, mas na maioria das vezes é um usuário comum.
su -
Este comando é usado para efetuar login na conta raiz.
Por padrão, a senha da conta Raiz está bloqueada no Ubuntu. Isso significa que você não pode efetuar login diretamente como root ou usar o comando su para se tornar o usuário raiz. No entanto, como a conta raiz existe fisicamente, ainda é possível executar programas com privilégios no nível raiz. É aqui que o sudo entra - ele permite que usuários autorizados (normalmente usuários "Administrativos") executem certos programas como Root sem precisar saber a senha do root.
Este comando executa "sh" como um super usuário.
O utilitário sh é um intérprete de linguagem de comando que deve executar comandos lidos a partir de uma sequência de linhas de comando, da entrada padrão ou de um arquivo especificado.
sudo bash
Este comando executa "bash" como um super usuário.
Bash é o shell ou intérprete da linguagem de comandos. O Bash é um shell compatível com sh que incorpora recursos úteis dos shell Korn (ksh) e C (csh). Ele se destina a estar em conformidade com o padrão IEEE POSIX P1003.2 / ISO 9945.2 Shell e Ferramentas. Oferece melhorias funcionais sobre sh para programação e uso interativo. Além disso, a maioria dos scripts sh pode ser executada pelo Bash sem modificação.
Vale a pena notar que você pode efetuar login como superusuário executando sudo su -sem uma senha root. Como o sudo executa o su -comando com permissões de root, a senha do usuário será solicitada apenas. Isso tem a vantagem de configurar o ambiente do usuário raiz, o que não pode ser feito simplesmente executando um shell com o sudo.
Aaron D
6
su -:
Isso mudará seu identificador de usuário e herdará as variáveis de ambiente como se você tivesse efetuado login com esse usuário. Normalmente você usaria o formato su - <userid>para fazer login como usuário. Se você soltar o "userid", ele assume que você está tentando fazer login como root - o que você não pode (a menos que altere a senha root).
sudo bash& sudo sh:
Qualquer coisa após o sudo é um programa para executar - portanto, nesses casos, você está pedindo para executar algumas conchas - bash e dash respectivamente. use man bashe man shpara obter mais detalhes sobre as diferentes conchas.
Ok, obrigado pela resposta, mas qual é a senha padrão para o root? Onde posso encontrá-lo ?
Patryk
O @lordmonkey root não tem uma senha e não precisa de uma. sudo -ilhe dará um shell de login como o su -faria, exceto que o sudo pede sua senha, não a raiz.
sudo su -
sem uma senha root. Como o sudo executa osu -
comando com permissões de root, a senha do usuário será solicitada apenas. Isso tem a vantagem de configurar o ambiente do usuário raiz, o que não pode ser feito simplesmente executando um shell com o sudo.su -
:Isso mudará seu identificador de usuário e herdará as variáveis de ambiente como se você tivesse efetuado login com esse usuário. Normalmente você usaria o formato
su - <userid>
para fazer login como usuário. Se você soltar o "userid", ele assume que você está tentando fazer login como root - o que você não pode (a menos que altere a senha root).sudo bash
&sudo sh
:Qualquer coisa após o sudo é um programa para executar - portanto, nesses casos, você está pedindo para executar algumas conchas - bash e dash respectivamente. use
man bash
eman sh
para obter mais detalhes sobre as diferentes conchas.Perguntas relacionadas:
fonte
sudo -i
lhe dará um shell de login como osu -
faria, exceto que o sudo pede sua senha, não a raiz.