'sudo' não funciona depois de alterar as permissões do diretório '/ usr'

5

Recentemente eu tive que alterar as permissões de pasta da pasta /usr . Agora todo o sudo não está funcionando. Se eu tentar atualizar meu sistema usando este comando:

sudo apt-get update

Recebo a seguinte mensagem:

sudo: /usr/lib/sudo/sudoers.so must be only be writable by owner
sudo: fatal error, unable to load plugins

Então eu tentei mudar as permissões da pasta abrindo o Nautilus como root usando este comando

gksudo nautilus

Mas nada aconteceu. Nautilus não abriu. Esta é uma emergência, pois todo o sudo não está funcionando. Quando tentei pesquisar a solução do Google, muitos sugeriram a reinstalação. Eu não prefiro re-instalação. Então, existe alguma outra solução?

    
por Bharat 29.05.2012 / 07:40

3 respostas

7

Na verdade, existem dois mecanismos configurados no Ubuntu para executar tarefas administrativas. sudo é um deles, e ele e suas interfaces gráficas (como gksu e gksudo ) não funcionará até que você corrija o problema de permissões.

O outro mecanismo é PolicyKit . Dependendo do que você fez exatamente com suas permissões de arquivo, é provável que você ainda possa recuperar usando o PolicyKit para executar comandos como root .

O comando pkexec executará qualquer comando (não gráfico) como root (desde que o usuário invocando é um administrador no sistema). pkexec é capaz de executar comandos gráficos (como nautilus ) como root , mas isso não é trivial, já que você precisa configurar arquivos de configuração para eles descrevendo como eles devem ser executados e o que são deveria ser permitido fazer. Portanto, é melhor usar a linha de comando para corrigir esse problema ... pelo menos até o ponto em que sudo funcione novamente. (Então você pode executar gksu nautilus para obter um navegador de arquivos root , se você estiver mais confortável usando isso para editar recursivamente as permissões de arquivo.)

Eu não sei exatamente o que você fez com suas permissões, por isso é difícil para mim dar a você um comando pkexec específico para executar, para corrigir o problema. Mas você pode corrigir o problema específico do qual o sudo está atualmente reclamando. Diz:

sudo: /usr/lib/sudo/sudoers.so must be only be writable by owner

Portanto, remova as permissões de gravação group e other (sem modificar as permissões de gravação owner ) para esse arquivo:

pkexec chmod go-w /usr/lib/sudo/sudoers.so

Então você pode ver se sudo funciona (executando um comando inócuo como sudo ls ).

Se você precisar executar outras operações nas permissões de arquivo da linha de comando com chmod , consulte man chmod .

(A propósito, aqui está outra situação relacionada em que é útil saber sobre pkexec .

Se você tiver problemas para fazer com que pkexec trabalhe nisso, sinta-se à vontade para comentar aqui e tentarei prestar mais assistência. Mas você deve saber que mesmo que esse método não funcione, você não precisará reinstalar o Ubuntu.

Em vez disso, você pode consertar o problema de um live CD / DVD ou live system USB do Ubuntu, porque o live system estará funcionando - sudo funcionará nele - e você pode montar sua partição Ubuntu e altere as permissões dessa maneira.

Ou como uma terceira opção (como forestpiskie tem sugerido ) , você pode usar o modo de recuperação .

    
por Eliah Kagan 29.05.2012 / 08:24
1

Eu tentava inicializar no modo de recuperação e definir as permissões de volta ao que elas eram.

Reinicializar - escolha o segundo item do menu para chegar ao modo de recuperação.

  

Recentemente tive que alterar as permissões de pasta da pasta / usr

O que lhe pediu para alterar as permissões de toda a pasta / usr?

    
por 23 93 26 35 19 57 3 89 29.05.2012 / 08:19
0

instale Usuários e grupos usando this
vá para Gerenciar grupos
e adicione você ao sudo group

    
por hingev 29.05.2012 / 08:07