Por que a senha 'sudo' é diferente da senha 'su root'

11

Na minha máquina pessoal, geralmente digito sudona frente de certos comandos para realizar tarefas administrativas. Eu esperava evitar fazer isso ao longo do dia, digitando su roote fornecendo a mesma senha que normalmente faço sudo. No entanto, as duas senhas não são as mesmas (não sei como fazer login su root). A execução de um comando é sudodiferente de efetuar login su roote executar o mesmo comando?

Penso sudoe su rootsou o mesmo, porque, quando digito sudo whoami, recebo root, em vez de exatamente whoamionde obtenho meu nome de usuário.

Trevor Hickey
fonte
Me deparei com esse segmento mais antigo porque estava vinculado a uma pergunta que eu fazia. As respostas são muito informativas, mas deixam uma pergunta. Em uma máquina pessoal (um usuário), como você obtém uma senha diferente para o root, dependendo de usar o sudo ou su root? Não há uma única senha root, definida quando o Linux está instalado?
fixer1234
@ fixer1234 Conforme explicado na resposta de John1024 , quando você usa sudo, o sistema solicita sua senha para verificar sua identidade e depois verifica /etc/sudoersse você tem permissão para executar o sudo. Quando você usa su, o sistema exige que você insira a senha do usuário para o qual está mudando . (Eu sei que este é agora um muito velha questão, mas eu queria acrescentar um esclarecimento para o benefício de futuros espectadores.)
anonymoose
@anonymoose, essa pergunta era sobre a máquina pessoal do OP. Normalmente, ao instalar o Linux em sua própria máquina, você saberia se fornecesse ao root uma senha diferente do seu usuário comum. A pergunta indica que o OP ficou surpreso ao descobrir que o root tinha uma senha diferente.
precisa saber é o seguinte
1
@ fixer1234 O OP pode não ter definido uma senha root para começar. O instalador do Ubuntu não solicita uma senha root e tenho certeza que outras distribuições não solicitam .
Anonymoose

Respostas:

17

Ao contrário do que o seu uso mais comum levaria a pensar, sue sudonão são voltadas apenas para o log in (ou executar ações) como root.

supermite que você mude sua identidade com a de outra pessoa. Por esse motivo, quando você digita su, o sistema precisa verificar se você possui as credenciais para o usuário de destino para o qual está tentando mudar.

sudoé um pouco diferente. O uso sudopermite executar determinados comandos (ou todos, dependendo da configuração) como outra pessoa. Sua própria identidade é usada para determinar quais tipos de comandos sudoserão executados para você sob a identidade de outra pessoa: se você é um usuário confiável (no sentido em que o administrador de sistemas confia em você), você terá mais liberdade do que, digamos, um estagiário. É por isso que você sudoprecisa verificar sua própria identidade e não a do usuário de destino.

Em outras palavras, tentar sualguém que você não é é como tentar cobrar suas compras em um cartão de crédito roubado enquanto estiver usando sudoé como vender o carro de um amigo por procuração legal.

Quanto ao que você estava tentando fazer, apenas sudo su root, ou ainda mais simplesmente, sudo sue digite sua senha de usuário comum. Isso equivaleria a substituir as credenciais do cartão de crédito de seu amigo pelas suas usando o proxy legal que eles lhe deram :). É claro que assume que a sudoconfiguração permite executar sucom privilégios escalados.

Além disso, os sistemas que vêm pré-configurados com sudoacesso geralmente têm a conta root desativada (sem senha root), você pode ativar isso usando o passwdcomando depois de se tornar root sudo su.

Joseph R.
fonte
Para usuário doméstico, você recomendaria definir a senha de root, além de ter usuário com privilégios (como em sudo)?
Royi 22/12/19
3

sudoé usado para escalar temporariamente as permissões de usuário para o nível raiz, enquanto que su rooté usado para criar um novo shell com raiz como usuário;

Dave
fonte
2

É configurável *, mas, por padrão, "sudo" solicita sua senha. Ele está apenas tentando ter certeza de que é você, não alguém usando o teclado enquanto você estava tomando café.

Por outro lado, "su root" solicita a senha do root.


* Se targetpw em / etc / sudoers for falso (padrão), "sudo" solicita sua senha. Se for verdade, "sudo" solicita a senha do root ou, se você especificou outro usuário com a opção "-u", a senha desse usuário.

John1024
fonte
1

Para o benefício de alguns recém-chegados nessa pesquisa, existe um método simples de entrar no root até você sair:

     sudo -iE

Manterá você interativo e manterá seu ambiente, mas agora como raiz.

fcm
fonte