Qual é a diferença entre 'su -', 'sudo bash' e 'sudo sh'?

26

Eu gostaria de saber qual é a diferença entre

  • su -
  • sudo bash
  • sudo sh

Não consigo fazer login como root enquanto faço su - porque não tenho a senha raiz - quero dizer, tenho minha senha de usuário com a qual posso sudo "command" , mas essa senha não funciona para su - Eu posso logar como root com sudo bash com minha senha de usuário e eu posso logar enquanto faço sudo sh mas então eu recebo um prompt de comando neste formulário #

    
por Patryk 14.08.2011 / 13:04

2 respostas

24

Plano de fundo

No Linux (e no Unix em geral), há um SuperUser chamado Raiz . O SuperUser pode fazer qualquer coisa e tudo e, assim, fazer o trabalho diário, pois o SuperUser pode ser perigoso. Você poderia digitar um comando incorretamente e destruir o sistema. Idealmente, você é executado como um usuário que possui apenas os privilégios necessários para a tarefa em questão. Em alguns casos, isso é necessariamente Root, mas na maioria das vezes é um usuário comum.

su -

Este comando é usado para fazer o login na conta root.
Por padrão, a senha da conta raiz está bloqueada no Ubuntu. Isso significa que você não pode logar como Root diretamente ou usar o comando su para se tornar o usuário Root. No entanto, como a conta raiz existe fisicamente, ainda é possível executar programas com privilégios no nível de raiz. É aqui que o sudo entra - permite que usuários autorizados (normalmente usuários "Administrativos") executem certos programas como Root sem precisar saber a senha de root.

Consulte Como ativar a conta raiz .

sudo sh

Este comando executa "sh" como um superusuário.
O utilitário sh é um interpretador de linguagem de comandos que deve executar comandos lidos a partir de uma cadeia de linha de comando, a entrada padrão ou um arquivo especificado.

sudo bash

Esse comando executa "bash" como um superusuário.
Bash é o shell ou o interpretador de linguagem de comando. O Bash é um shell compatível com sh que incorpora recursos úteis do shell Korn (ksh) e do shell C (csh). Pretende-se que esteja em conformidade com a norma IEEE POSIX P1003.2 / ISO 9945.2 Shell and Tools. 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.

Referências: 1 , 2 , 3 .

    
por desgua 14.08.2011 / 13:43
5

su - :

Isso alterará seu identificador de usuários 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 efetuar login como usuário. Se você eliminar o "userid", ele assumirá que você está tentando fazer o login como root - o que não é possível (a menos que você altere a senha do root).

sudo bash & amp; sudo sh :

Qualquer coisa depois do sudo é um programa para executar - então nestes casos você está pedindo para executar alguns shells - bash and dash respectivamente. use man bash e man sh para mais detalhes sobre os diferentes shells.

Perguntas relacionadas:

por fossfreedom 14.08.2011 / 13:34