/ usr / bin / sudo deve ser de propriedade de uid 0 e ter o setuid bit set [duplicate]

61

Eu corri o seguinte comando acidentalmente

sudo chown [username] -hR /

Agora sudo su recebendo erro:

sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set

Como resolver isso?

    
por Pandya 22.04.2014 / 16:14

8 respostas

22

Faça backup dos seus dados e reinstale.

Isso provavelmente parece extremo, mas isso não é apenas sudo . Você destruiu a estrutura de permissões de todo o seu sistema de arquivos. Algumas das outras respostas podem obter sudo funcionando, mas ignorar todo o problema é convidar um desastre posterior.

Você pode tentar espelhar os proprietários de outra instalação, mas há casos ( /var/ , por exemplo) que são altamente dependentes do que você realmente instalou. Se você quiser ter uma escala do problema, eu realmente tive a chance de ajudar alguém a corrigir esse tipo de problema antes . A correção é manual, longa e pode facilmente deixar seu sistema inseguro ou quebrado.

Escolher essa bagunça vai demorar muito mais do que uma instalação limpa.

Isso teve algumas idas e vindas de pessoas que não entendem a gravidade da situação aqui. Para eles, parece uma grande pilha de trabalho desnecessário, o tipo de coisa que um encanador ou mecânico desonesto diz para abalar você para um trabalho maior.

Se você apenas alterou as permissões em /usr/bin/sudo , por todos os meios, apenas corrija isso. Mas essa questão é sobre uma mudança total no sistema. Todo arquivo (salvo os únicos em tempo de execução) agora pertence ao usuário. Tudo o que o usuário executa (por exemplo, navegadores, explorações de navegador ) pode então sobrescrever arquivos do sistema, espioná-lo, extrair qualquer dado. Isso precisa ser corrigido. Por acima, isso é difícil. A maneira mais fácil é reinstalar.

Então, por favor, não seja preguiçoso sobre isso. As permissões do sistema de arquivos ajudam a mantê-lo seguro, corrija-as.

    
por Oli 22.04.2014 / 16:23
120

Como você vai ler em esta resposta em SO , esse problema não é difícil como as pessoas estão fazendo isso. Eu tenho o comando sudo trabalhando novamente sem reinstalar seguindo estes passos simples:

  1. Efetue logout como usuário atual e efetue login novamente como root.
  2. Executar chown root:root /usr/bin/sudo && chmod 4755 /usr/bin/sudo
  3. Efetue logout como root e faça login novamente como usuário atual.

Isso faz o truque e é muito mais rápido e menos doloroso do que a "opção nuclear" recomendada em outras respostas.

Se a sua senha de root não estiver definida, você pode inicializar em Recovery Mode para configurá-la.

    
por user10962 24.05.2014 / 15:51
10
  1. vá para o modo de recuperação pressionando Esc enquanto inicializa o sistema.

  2. selecione a opção root na lista longa que você pode ver depois de entrar no modo de recuperação (na verdade, é shell root)

  3. digite o comando - mount -o remount / (Ou, na recuperação, você pode clicar na opção grub. Isso me ajudou a obter permissões de leitura e gravação no sistema de arquivos. Isso basicamente atualizou o modo de leitura / gravação no sistema de arquivos porque o comando não era t trabalhando para mim inicialmente)

    Ele irá remontar seu sistema de arquivos no modo de leitura e gravação.

  4. comando - chown -R root:root /usr este comando irá mudar a propriedade de "usuário" para root novamente recursivamente

  5. agora ainda tive problema com o comando sudo , então eu segui novamente a etapa 1,2,3 e executei chmod 4755 usr/bin/sudo

Agora eu realmente acho que a reinstalação teria sido realmente uma "opção nuclear"

    
por Hridaynath 18.11.2015 / 07:05
3

Infelizmente, se você não tiver um backup completo, provavelmente a melhor coisa que você pode fazer neste momento é reinstalar.

Considere que você alterou a propriedade de todos os arquivos para o mesmo usuário, atrapalhando completamente o paradigma de segurança do seu sistema ...

Se você pesquisar este site, há muitos problemas semelhantes com o chmod, como por exemplo Como posso recuperar de chmod -R a-wrx / command?

    
por Rmano 22.04.2014 / 16:26
3

Tive o mesmo problema na minha gota no oceano digital.

sudo: /usr/bin/sudo deve pertencer a uid 0 e ter o setuid definido. Abaixo está o comando que ive executar e reiniciar depois.

chown -R root:root /usr/bin/sudo
chmod -R a=rx,u+ws /usr/bin/sudo
chown -R root:root /usr/lib/sudo/sudoer.so
chmod -R a=rx,u+ws /usr/lib/sudo/sudoer.so

Espero que ajude.

    
por Marvee Lou Manriquez Ventures 27.09.2016 / 05:09
2

Os métodos acima não funcionaram para mim, porque não consegui "fazer login novamente como root" (senha desconhecida) Mas eu tenho um shell de root editando

vi /etc/lightdm/lightdm.conf

autologin-user=root
greeter-show-manual-login=true

Após a reinicialização, finalmente consegui executar

chown root:root /usr/bin/sudo && chmod 4755 /usr/bin/sudo
    
por Anno2001 04.12.2014 / 14:40
1

Eu não consegui editar o arquivo lightdm.conf no sistema em execução. Eu consertei coisas assim:

  1. inicializa o Ubuntu live usb
  2. monte a partição raiz para acessar /etc/lightdm/lightdm.conf na instalação
  3. sudo -H gedit /mnt/etc/lightdm/lightdm.conf e adicione as seguintes linhas de resposta do Anno2001

    autologin-user=root
    greeter-show-manual-login=true
    
  4. reboot

  5. comando de execução:

    chown root:root /usr/bin/sudo && chmod 4755 /usr/bin/sudo
    
  6. Altere o usuário padrão em /etc/lightdm/lightdm.conf (você não quer se autenticar como root toda vez, o que seria muito inseguro e perigoso)

  7. reinicialize e meu sistema funciona bem novamente.
por DrackG 08.09.2015 / 23:19
-2

Eu alterei o / usr / lib / para o proprietário da raiz, mas o sudo só é executado com o login root no terminal.

primeiro passo: su root passo dois: cd / usr / lib passo três: chown -R root: root sudo

e é isso. Apenas NOTE você tem que executar o su root toda vez que você quiser usar o sudo.

    
por Cyprian Maina 04.05.2016 / 16:07