Como consertar o sudo depois de “chmod -R 777 / usr / bin”?

14

Eu inseri chmod -R 777 /usr/bin e agora o sudo não está funcionando.

Diz sudo must be setuid root .

Alguns conselhos on-line disseram para executar chown root:root /usr/bin/sudo chmod 4755 /usr/bin/sudo .

Ao inserir chown root:root /usr/bin/sudo , ele mostra um erro opened in readonly mode .

    
por Manoj Kumar 27.04.2012 / 15:41

5 respostas

9
  

Não obstante o status aceito, estou convencido de que esta resposta está errada . (Espero melhorar em breve, depois de consultar o OP sobre a aceitação.) Acho que me lembro de outros dizendo que isso funcionou, mas acredito que os problemas deles eram pelo menos um pouco diferentes. O método descrito aqui permanece valioso para algumas situações em que chmod -R 777 /usr/bin é interrompido com Ctrl + C ou caso contrário não é concluído. Mas, quando isso acontece, pkexec também não foi definido e não funcionará melhor do que sudo , como Damien Roche e Oli comentaram com razão.

Em um sistema desktop Ubuntu, PolicyKit está instalado, então pkexec pode ser usado para reparar um executável sudo quebrado ou sudoers file . Você não precisa inicializar no modo de recuperação e não precisa inicializar a partir de um live CD. Você nem precisa reiniciar.

Nesse caso, execute os seguintes comandos:

pkexec chown root:root /usr/bin/sudo
pkexec chmod 4755 /usr/bin/sudo

Veja esta questão para mais informações.

    
por Eliah Kagan 19.05.2012 / 04:14
4

Mesmo ao executar a partir do Live CD / Pendrive, você deve prefixar o comando chmod com sudo . Então, seus passos serão como os seguintes:

  1. inicializar a partir de um CD / Pendrive
  2. verifique se seu disco já estava montado automaticamente (e para onde). Se não, monte-o (veja abaixo)
  3. use sudo chmod 0755 <path> para ajustar as permissões

Como descobrir onde seu disco está montado: a partir de uma janela de terminal, execute mount (sem argumentos). Isso listará todos os dispositivos montados. Verifique o type listado - você pode pular tudo sem usar um "sistema de arquivos real" (seu disco provavelmente usa ext3 ou ext4 - você pode com certeza pular coisas como proc, sysfs e outros). Se algo parece promissor (parecido com /dev/sda1 on /media/sda1 type ext3 ), verifique seu conteúdo usando ls /media/sda1 para ver se é isso.

Se não estiver montado, você pode verificar com as entradas /dev em que o disco pode estar (usando ls /dev/ |grep '/dev/sd para verificar os dispositivos disponíveis; o disco deve parecer com /dev/sdaX , /dev/sdbX ou semelhantes - - com X sendo um número). Compare isso com a lista de dispositivos montados. Se não estiver lá, tente montá-lo e verificar seu conteúdo (como mostrado acima). Para montá-lo, primeiro crie um ponto de montagem, por exemplo sudo mkdir /mnt/mydisk , tente montar o dispositivo usando mount /dev/sda1 /mnt/mydisk e verifique seu conteúdo usando ls /mnt/mydisk .

Uma vez que você tenha o disco certo, você pode alterar as permissões no seu diretório usr: sudo chmod 0755 /mnt/mydisk/usr .

Agora você ainda pode estar com problemas se originalmente executou o comando chmod recursivamente, usando o parâmetro -R . Nesse caso, você pode tentar corrigir cada entrada manualmente - ou você pode ir direto para uma nova instalação ...

    
por Izzy 09.07.2012 / 11:46
1

Eu acho que o Mat está correto, você deve ser root para adicionar o bit ao / usr / bin, mas é claro que o sudo está quebrado. Se você tiver uma senha root, poderá usá-la para fazer logon como root e, em seguida, corrigir as permissões com o comando acima. Se você não o fizer, no entanto, (e eu também não) provavelmente seria melhor:

  • inicializar a partir de um live CD do Linux
  • tornar-se root lá
  • monte a partição com o sistema acima
  • endireite as permissões nesse sistema de arquivos usando um terminal.

A raiz é sempre o número de usuário 0, de modo que o usuário root em qualquer sistema pode fazer alterações permitidas para raiz em outros sistemas de arquivos.

    
por John S Gruber 19.05.2012 / 03:56
1

Eu não tenho muito conhecimento. Mas estas etapas resolveram meu problema mesmo sem reiniciar minha máquina. Siga estas etapas:

su root
<enter root password>
cd /usr
chmod -R 755 *
    
por Manu Mohan T 27.03.2015 / 08:31
1

Em uma tentativa de definir permissões para meus scripts locais, eu quebrei a permissão sudo e alterei a propriedade, por engano. Consegui voltar a propriedade do sudo para root fazendo o seguinte:

Passo 1: mude para o modo de recuperação do ubuntu . Se você não tem conhecimento do processo, pode consultar uma resposta aqui: link

Etapa 2: Uma vez no modo de recuperação, selecione root - solte para o prompt do shell de root

Etapa 3: faça os seguintes comandos

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

Aguarde até que o sistema inicialize normalmente e você verá a propriedade do sudo de volta à raiz.

    
por ramsudharsan 17.06.2017 / 04:07