Entrei 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 entrar chown root:root /usr/bin/sudo
mostra um opened in readonly mode
erro.
permissions
sudo
root
chmod
Manojkumar
fonte
fonte
pkexec
método na minha resposta (que você marcou como aceite) resolver esse problema para você? Fiquei convencido de que, como Damien Roche e Oli comentaram, esse método não funciona realmente depois que umsudo chmod -R 777 /usr/bin
comando é concluído com êxito. Comosudo
,pkexec
tem que ser setuid root para funcionar. (Não sei por que, pois ele usa o serviço polkit , mas usa.) No entanto, acho que ouvi outras pessoas dizerem que isso funcionou para elas, o que é curioso! Você pressionou Ctrl + C antes de o777
comando chmod terminar?sudo chmod -R 777 /usr/bin
, mas somente após o login naroot
conta.Respostas:
Em um sistema desktop Ubuntu, o PolicyKit está instalado, portanto
pkexec
pode ser usado para reparar um arquivosudo
ou executável corrompidosudoers
. Você não precisa inicializar no modo de recuperação e não precisa inicializar a partir de um CD ao vivo. Você nem precisa reiniciar.Nesse caso, execute os seguintes comandos:
Veja esta pergunta para mais informações.
fonte
pkexec must be setuid root
! Que pesadelo!pkexec
exatamente na mesma situação quesudo
. É normalmente setuid e vive em/usr/bin
. Eu testei e isso simplesmente não funciona depoischmod -R 777 /usr/bin
.pkexec
que o setuid root deve funcionar (ele não funciona no daemon polkit como em outros processos não setuid?), Mas precisa disso. Eu comentei a pergunta para ver se o OP (que aceitou isso) pode esclarecer o que é certo ou útil sobre esta resposta. E adicionei um banner temporário na parte superior desta postagem para não enganar ainda mais. Se essa resposta continuar a existir, seu formulário aprimorado provavelmente incorporará algumas informações atualmente nesse banner.su
, que está localizado em / bin/usr/bin
requer privilégios de root, mas você não podesu
fazer root na maioria dos sistemas Ubuntu porque os logins raiz estão desativados por padrão. Ao contrário de ,sudo
epkexec
quando você usasu
um shell raiz ou executa um comando como root, é necessário fornecer a senha do root, não a sua. Mas o root não possui senha por padrão no Ubuntu (ou seja, a autenticação baseada em senha para o root sempre falha, não que a inserção de uma senha em branco funcione). Veja RootSudo para detalhes.Mesmo ao executar a partir do CD ao vivo / Pendrive, você deve prefixar seu
chmod
comando comsudo
. Portanto, suas etapas serão as seguintes:sudo chmod 0755 <path>
para ajustar as permissõesComo descobrir onde o seu disco está montado: a partir de uma janela do terminal, execute
mount
(sem argumentos). Isso listará todos os dispositivos montados. Verifique ostype
listados - você pode pular tudo que não estiver usando um "sistema de arquivos real" (seu disco provavelmente usa ext3 ou ext4 - você pode pular itens como proc, sysfs e similares). Se algo parecer promissor (parecido/dev/sda1 on /media/sda1 type ext3
), verifique seu conteúdo usandols /media/sda1
para ver se é isso.Se não estiver montado, você pode verificar com as
/dev
entradas em que o disco pode estar (usandols /dev/ |grep '/dev/sd
para verificar se há dispositivos disponíveis, o seu disco deve ser semelhante/dev/sdaX
,/dev/sdbX
ou algo semelhante - com X sendo um número). Compare isso com a lista de dispositivos montados. Se não estiver lá, tente montá-lo e verifique seu conteúdo (como mostrado acima). Para montá-lo, primeiro crie um ponto de montagem, por exemplosudo mkdir /mnt/mydisk
, tente montar o dispositivo usandomount /dev/sda1 /mnt/mydisk
e verifique seu conteúdo usandols /mnt/mydisk
.Depois de conseguir o disco lá, você pode ir para alterar as permissões de volta em seus dir usr:
sudo chmod 0755 /mnt/mydisk/usr
.Agora você ainda pode estar com problemas se originalmente executou o
chmod
comando recursivamente, usando o-R
parâmetro Nesse caso, você pode tentar corrigir cada entrada manualmente - ou pode ir direto para uma nova instalação ...fonte
mount /dev/sda /mnt/mydisk
a partirroot@Ubuntu:/dev#
mkdir -p /mnt/mydisk && mount /dev/sda1 /mnt/mydisk
(Eu não acho que você não tem partições/dev/sda
, então você deve ter perdido o número da partição assim Certifique-se de especificar o dispositivo correto (ou montar falhará)..Eu acho que Mat está correto, você deve ser root para adicionar o bit a / 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 não, no entanto, (e eu também não), provavelmente seria melhor:
Raiz é sempre o número de usuário 0, portanto, a raiz de qualquer sistema pode fazer alterações permitidas na raiz de outros sistemas de arquivos.
fonte
Eu não tenho muito conhecimento. Mas essas etapas resolveram meu problema mesmo sem reiniciar minha máquina. Siga esses passos:
fonte
root
, que não é a configuração padrão do Ubuntu.Na tentativa de definir permissões para meus scripts locais, quebrei a permissão sudo e alterei a propriedade por engano. Consegui alterar novamente a propriedade do sudo para root, fazendo o seguinte:
Etapa 1: mude para o modo de recuperação do ubuntu . Se você não conhece o processo, pode consultar uma resposta aqui: /ubuntu//a/172346/223901
Etapa 2: uma vez no modo de recuperação, selecione raiz - prompt de shell Drop to root
Etapa 3: Execute os seguintes comandos
Aguarde o seu sistema inicializar normalmente e você verá a propriedade do sudo de volta ao root.
fonte