Como voltar sudo no Ubuntu?

12

Eu fiz isso:

sudo chown -R myname /usr/

e agora não posso usar o comando sudo devido a este erro:

sudo: must be setuid root

E enquanto eu leio isso significa que o proprietário deste arquivo /usr/bin/sudo não é a raiz. É meu usuário agora por causa do chown na pasta /usr .

Em muitos fóruns e blogs, as pessoas sugerem fazer isso como root:

# chown root:root /usr/bin/sudo
# chmod 4111 /usr/bin/sudo

... mas o problema com isso é que eu preciso logar como root, mas não posso porque se eu escrevo su no terminal a senha está errada (na verdade eu uso a senha que adicionei para meu usuário):

$ su
Password:
su: Authentication failure

Então, posso recuperar o comando sudo ?

Edit: Meu Ubuntu está sob Paralells no meu Mac OS X.

    
por Adam 19.07.2011 / 15:30

6 respostas

5

Se você tiver um sistema semelhante que possa ser usado como guia para ver qual é a propriedade correta de todos os arquivos, poderá inicializar no modo de recuperação, passar para um shell raiz e restaurar manualmente a propriedade correta para todos os arquivos em /usr .

A maneira mais rápida pode ser reinstalar o sistema operacional ou restaurar a partir do backup.

No Ubuntu ou similar, não há senha de root por padrão (a conta está desabilitada), e é por isso que você não pode su .

    
por 19.07.2011 / 15:38
11

Como você selecionou as permissões da única coisa que lhe dá acesso ao nível de raiz, você precisará de ajuda de FORA do ambiente de software atual para corrigir isso.

Eu sugiro que a maneira mais fácil seja inicializar um LiveCD para sua distro, montar sua unidade e alterar as permissões de arquivo usando o chmod que você listou a partir dali.

Você também pode tentar inicializar no modo de usuário único para obter um shell de root.

Esteja ciente de que, geralmente, todas as coisas no diretório /usr/ devem ser de propriedade de root , então você deve ser capaz de fazer uma chown recursiva para corrigir o que quer que tenha quebrado. ( Editar: Por @Gilles comentários aparentemente executando chown quebra setuid e setgid bits, então você irá precisar comparar manualmente a um sistema existente para restaurar todos aqueles que você consertar a propriedade novamente.)

No entanto, muito FEW deve ser 4111 . Aquele extra é uma permissão especial, mas que o faz executar como root, mesmo quando executado como usuário! Somente sudo e alguns comandos selecionados devem ter esse bit de permissão definido. Se você não executou um chmod para começar, provavelmente não precisa corrigir isso , todas as permissões já devem estar corretas. Não execute uma grande operação chmod sem saber quais devem ser todas as permissões.

    
por 19.07.2011 / 15:42
4

No modo de recuperação do Ubuntu, digite os seguintes comandos. Isso corrigiu o problema para mim.

mount -o remount,rw /
mount --all
chown root:root /usr/bin/sudo
chmod 4755 /usr/bin/sudo
restart

Espero que isso corrija seu problema (ou de outra pessoa)

Eu encontrei este aqui neste postagem no blog .

    
por 30.01.2015 / 09:39
1

Isso é mais simples do que as pessoas estão fazendo. Tente o seguinte:

  1. Em vez de tentar fazer login como root usando o comando su interrompido, efetue logout como usuário atual e faça login novamente como root por meio do Gerenciador de exibição normal (por exemplo, tela de login).
  2. Execute o seguinte no terminal: chown root:root /usr/bin/sudo && chmod 4755 /usr/bin/sudo

Isso deve corrigir o comando sudo e colocá-lo novamente em operação em pouco tempo.

    
por 24.05.2014 / 15:56
1

Isso é muito mais fácil do que o sugerido por outras respostas. Não há necessidade de formatar, reiniciar ou usar CD ao vivo.

su root # then enter your password to switch to root user
chown root:root /usr/bin/sudo && chmod 4755 /usr/bin/sudo
exit # to get back to the original user

Esta é a maneira mais fácil de corrigir esse problema. Explicação, sudo está corrompido (eu sei corrompido é o termo errado, mas não está funcionando, por isso, precisamos evitar o uso de sudo)

  • Usando o comando 1 (su raiz) , mudamos o usuário para root sem usar o sudo.
  • Usando o comando 2 (raiz raiz: raiz / usr / bin / sudo & & chmod 4755 / usr / bin / sudo) , corrigimos as permissões / propriedade do sudo.
  • Usando o comando 3 (exit) , voltamos ao usuário original.

Eu testei esse método no Linux mint. Qual é um sistema semelhante ao Ubuntu. Deixe-me saber este método não funciona em qualquer outro sistema operacional. Atualizará a resposta de acordo.

Obrigado

    
por 24.07.2015 / 13:26
0

Para entrar como root, sem su ou sudo, você pode usar o pkexec:

pkexec su

Agora altere as permissões dos arquivos:

chmod 440 /etc/sudoers
chmod 775 /etc/sudoers.d
chmod 440 /etc/sudoers.d/README
    
por 15.12.2017 / 16:39