Eu fiz isso:
sudo chown -R myname /usr/
e agora não posso usar o sudo
comando por causa desse erro:
sudo: deve ser raiz setuid
E enquanto eu leio isso significa que o proprietário deste arquivo /usr/bin/sudo
não é a raiz. Agora é meu usuário por causa do chown na /usr
pasta.
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 é que eu preciso fazer login como root, mas não posso, porque se eu escrever su
no terminal a senha está errada (na verdade, eu uso a senha que adicionei ao meu usuário):
$ su
Password:
su: Authentication failure
Então, posso recuperar o sudo
comando?
Edit: Meu Ubuntu está sob Paralells no meu Mac OS X.
su
, você será solicitado a senha de root , e não a senha do usuário como comsudo
. Você conhece a senha root desta máquina?sudo chmod -R cirk:cirk /usr
que você estava tentando realizar?Respostas:
Se você possui um sistema semelhante que pode ser usado como um guia para ver qual é a propriedade correta de todos os arquivos, é possível inicializar no modo de recuperação, ir para um shell raiz e restaurar manualmente a propriedade correta para todos os arquivos. arquivos em
/usr
.A maneira mais rápida pode ser reinstalar o SO ou restaurar a partir do backup.
No Ubuntu ou similar, então não há senha de root por padrão (a conta está desabilitada), e é por isso que você não pode
su
.fonte
chown
nãochmod
. Como tudo na/usr
pasta deve serroot:root
, essa deve ser uma solução fácil, não a correção minuciosa que umchmod
clobber significaria.chown
redefine os bits setxid. Existem alguns arquivos/usr
que não pertencem à raiz; mais que estão em um grupo diferente (especialmente nos programas setgid/usr/bin
).Como você concedeu as permissões à única coisa que lhe dá acesso no nível raiz, precisará de ajuda de FORA do ambiente de software atual para corrigir isso.
Sugiro que a maneira mais fácil é inicializar um LiveCD para sua distribuição, montar sua unidade e alterar as permissões de arquivo usando as
chmod
listadas a partir daí.Você também pode tentar inicializar no modo de usuário único para obter um shell raiz.
Esteja ciente de que geralmente todas as coisas no
/usr/
diretório devem ser de propriedade;root
portanto, você deve ser capaz de executar uma recursivachown
para corrigir o que quebrou. ( Edit: Por @Gilles comenta aparentemente correndochown
breaks setuid e setgid pedaços, para que você vai precisar para comparar manualmente para um sistema existente para restaurar todos os uma vez que você corrigir a propriedade novamente.)No entanto, muito poucos devem ser
4111
. Essa extra é uma permissão especial, mas que a executa como root, mesmo quando executada como usuário! Somentesudo
e alguns comandos selecionados devem ter esse bit de permissão definido. Se você não executou umchmod
para começar, provavelmente não precisa corrigir isso , todas as permissões já devem estar corretas. Não execute uma grandechmod
operação sem saber quais devem ser todas as permissões.fonte
sudo chown -R root /usr/
?/usr
LivdCD, você precisa montá-lo em algum lugar e correr nesse caminho, digamos/mnt/mydrive/usr
. Então você precisará corrigir o bit setuid/mnt/mydrive/usr/bin/sudo
. Então olhe através do / usr no livecd e veja se há outras propriedades além do root.find /usr -not -uid 0
e mude para combinar. Em seguida, procure por itens com diferentes bits setuid ou setgid e verifique se eles também correspondem. Se você tem um sistema Ubunutu real para comparar, seria melhor.No modo de recuperação do Ubuntu, digite os seguintes comandos ... Isso corrigiu o problema para mim ..
Espero que isso resolva seu problema. (Ou de outra pessoa)
Encontrei este aqui neste post do blog .
fonte
Isso é muito mais fácil do que o sugerido por outras respostas. Não há necessidade de formatar, reiniciar ou usar o live CD.
Essa é a maneira mais fácil de corrigir esse problema. Explicação, sudo está corrompido (eu sei que corrompido é o termo errado, mas não está funcionando, portanto, precisamos evitar o uso de sudo)
Eu testei esse método no Linux mint. Que é um sistema semelhante ao ubuntu. Deixe-me saber que este método não funciona em nenhum outro sistema operacional. Atualizará a resposta de acordo.
obrigado
fonte
su root
, e porquesudo
não trabalho, é impossível senha definida raizIsso é mais simples do que as pessoas estão fazendo. Tente o seguinte:
su
efetuar login como root usando o comando quebrado , efetue logon como seu usuário atual e faça login novamente como root através do seu Gerenciador de exibição normal (por exemplo, tela de login).chown root:root /usr/bin/sudo && chmod 4755 /usr/bin/sudo
Isso deve corrigir o
sudo
comando e colocá-lo em funcionamento novamente em pouco tempo.fonte
Para fazer login como root, sem su ou sudo, você pode usar o pkexec:
Agora altere as permissões dos arquivos:
fonte