Quando su e sudo usam senhas diferentes?

12

Eu sou capaz de executar qualquer coisa usando sudo; minha senha é aceita. Mas sempre que tento fazer a supartir de um shell, ele falha com:

su: senha incorreta

Qual pode ser o problema?

lazer
fonte

Respostas:

22

susignifica usuário substituto e, se for chamado sem argumentos, você se tornará o superusuário. Portanto, você deve inserir a senha root.

Isso é impraticável se muitas pessoas precisarem usar comandos para a administração do sistema ou coisas semelhantes com direitos estendidos de usuário. Você simplesmente não quer que as pessoas tenham direitos ilimitados compartilhando a mesma senha root.

A solução para esse tipo de problema é sudo(" usuário substituto "). Isso permitirá que você especifique os comandos que alguém pode chamar e defina as permissões. Para sudovocê não precisar digitar a senha root, mas a senha do usuário que tenta chamar um comando sudo.

Algumas distribuições têm o usuário root desativado por motivos de segurança. Essa pode ser uma explicação do motivo pelo qual você não pode usar su. Nesse caso, para obter um shell com privilégios de root, use sudo -s;-)

echox
fonte
5
É recomendável fazer esse último bit, pois sudo su -o traço significa definir o ambiente de acordo com o perfil de login do usuário (neste caso, raiz). Isso geralmente permite um ligeiro aumento na segurança PATH, mas ainda não protege contraecho hi > /dev/my_critical_filesystem
msw
aaah esqueceu este :-) thx pela adição!
Echox
@echox: Então, existe alguma diferença entre $ scripte $ sudo script? O usuário é o mesmo nos dois casos.
Lazer
sudo allows a permitted user to execute a command as the superuser or another user, as specified in the sudoers file.- do homem sudo. Normalmente, o script será chamado com privilégios de root. Essa é a diferença.
Echox
1
@ Chris: infelizmente, isso é necessário se você deseja herdar todo o ambiente do usuário raiz, incluindo seu PATH. Aliás, acabei de descobrir que "sudo -s", que comentei acima, mas que agora removi, é mais equivalente a "sudo su", sem o hífen: nenhuma alteração no CWD, nenhuma alteração no PATH.
Warren Young
7

O comando su sem opções será o padrão para permitir que você se torne o usuário root. Não está pedindo sua senha, mas a senha root.

O comando sudo sempre pede sua senha.

Matthew Brannigan
fonte
2
Como uma nota lateral, se você usar o Ubuntu, por padrão tem a senha de root bloqueado, então você pode não saber a senha de root help.ubuntu.com/community/RootSudo
phunehehe
3
"O comando sudo sempre pede sua senha." Na verdade, isso é configurável. Também pode ser configurado para solicitar a senha root ou a senha do usuário de destino (ou nenhuma senha).
sepp2k