erro sudo, é o modo 0777, deve ser 0440

26

Estou recebendo erros do sudo, como faço para corrigir esse erro?

sudo: /etc/sudoers is mode 0777, should be 0440
sudo: no valid sudoers sources found, quitting 
user20698
fonte
Como os usuários observaram anteriormente, usar "chmod 0440 / etc / sudoers" quando o arquivo sudoers.d / README tiver o chmod errado NÃO FUNCIONA.
kentfx
Você está sugerindo que, quando o problema está nas permissões /etc/sudoers.d/README, que o erro ainda pode indicar sudo: /etc/sudoers is mode 0777, should be 0440?
Eliah Kagan

Respostas:

26

Primeira opção

Após este post :

  1. Reinicie o PC
  2. Quando a tela de seleção de inicialização do GRUB aparecer, escolha Modo de recuperação. (Se não aparecer, pressione a Shifttecla quando vir o carregador GRUB na parte inferior).
  3. Um terminal preto deve aparecer, neste ponto você pode executar este comando (você deve ter privilégios de root):

    chmod 0440 /etc/sudoers
    

alternativamente

Você precisará colocar o Ubuntu em um LiveCD, inicializar no LiveCD, montar sua partição Ubuntu no disco rígido (abra um navegador de arquivos, como o Nautilus, e clique em sua partição Ubuntu; ou clique em Locais -> "xxGB Partition / Your Partition Ubuntu ").

Em seguida, abra um terminal dentro da sessão do LiveCD e digite estes dois comandos:

cd /media/<name of permanent ubuntu partition>/etc
sudo chmod 0440 sudoers

Problemas extras

Se houver algum erro (conforme publicado abaixo), siga o prompt de erro e ajuste cada arquivo de acordo com uma das duas etapas acima:

sudo apt-get update sudo: /etc/sudoers.d/README é o modo 0777, deve ser 0440 sudo: / var / lib / sudo gravável por não proprietário (040777), deve ser o modo 0700 [sudo] senha para

Corrija seguindo com:

chmod 0440 /etc/sudoers.d/README
chmod 0700 /var/lib/sudo

Esses dois comandos devem ser usados ​​adequadamente com as etapas descritas acima. Eles mudarão as permissões de arquivo associadas a esse arquivo. 0440 concederá permissões de leitura ao proprietário (root) e o grupo e 0700 concederá permissões de leitura, gravação e execução ao proprietário (root).

Alex Stevens
fonte
Eu posso usar o comando sudo, mas limitado. sudo apt-get update sudo: /etc/sudoers.d/README is mode 0777, should be 0440 sudo: /var/lib/sudo writable by non-owner (040777), should be mode 0700 [sudo] password for
user20698
@ Alex: ESC é para o legado do GRUB, certo? A tecla Shift deve ser pressionada para o GRUB2.
Lekensteyn
@ user20698: você não precisa sudodo primeiro, o segundo deve ser feito a partir de um Live CD.
Lekensteyn
Se sudoers for 0777, o usuário não poderá executar chmod 0440 /etc/sudoerssem o sudo, pois o sudoers é gravável por todos?
Seppo Erviälä
2
@ Seppo: não, apenas o proprietário de um arquivo pode alterar suas permissões.
Lekensteyn
16

sudoestá quebrado nessa situação, mas pkexec(o frontend da linha de comando do PolicyKit ) ainda funciona, para que você possa corrigi-lo com um único comando. Não é necessário reiniciar.

pkexec chmod 0440 /etc/sudoers

Isso pressupõe que o PolicyKit esteja instalado. Se este é um sistema de desktop (em vez de um servidor sem GUI), é.

Eliah Kagan
fonte
4

Inicialize no modo de recuperação, escolha o shell raiz e:

chmod 0440 /etc/sudoers

Ou, se você não quiser reiniciar, poderá usar esta alternativa:

pkexec chmod 0440 /etc/sudoers
pkexec chmod 0440 /etc/sudoers.d/README

isso mudará a permissão. Experimente, vai funcionar.

Atul Makwana
fonte
1
Por que você está chmodinserindo alguns arquivos 440e outros 0440? Você não deve usar 0440uniformemente? E por que você está alterando as permissões /etc/sudoers.d/READMEquando usa o pkexeccaminho, mas não o contrário? E quanto a outros arquivos possíveis /etc/sudoers.d?
Eliah Kagan
1

O que você fez para obter esses erros?

  • Se você fez sudo chmod -R 777 /etc:, precisará de um Live CD para reparar isso.

    1. Inicialize em um Live CD e selecione "Experimente"
    2. Monte sua partição Ubuntu (ou a partição que contém /etcse você colocou /etcuma partição separada). Isso pode ser feito usando um navegador de arquivos como o Nautilus ou o menu Locais
    3. Abra um Terminal , vá para Aplicativos => Acessórios => Terminal
    4. Determine a pasta da sua partição Ubuntu, você pode listar o conteúdo das partições montadas usando ls -l /media. É possivelmente nomeado ubuntuou disk. Nas próximas etapas, vou assumir ubuntu.
    5. No Terminal, defina permissões restritivas por padrão:

      sudo find /media/ubuntu/etc -type f -exec chmod g-wx,o-rwx {} \;
      sudo find /media/ubuntu/etc -type d -exec chmod g-w,o-rwx {} \;
      
    6. Em seguida, use o Live CD como ponto de referência para restaurar as permissões de arquivo. O comando abaixo alterará as permissões de arquivo para /etc/media/ubuntuusar a /etcpasta no Live CD como ponto de referência. Ele mudará apenas as permissões nos arquivos ( -type f) e nos diretórios ( -type d) no mesmo sistema de arquivos ( -xdev). Quaisquer erros são gravados em ~/errors.logErros como "arquivo não encontrado" indica que um arquivo no sistema está instalado, mas não encontrado no Live CD. O comando da etapa 5 deve definir as permissões corretas, mas para obter melhores resultados, é melhor reinstalar os pacotes.

      cd /media/ubuntu && sudo find etc -xdev \( -type f -o -type d \) -f -exec chmod --reference=/{} {} \; 2>~/errors.log
      
    7. Agora seguro em ~/errors.logalgum lugar (como http://paste.ubuntu.com/ ) para que você possa adicioná-lo como comentário a esta resposta, caso tenha problemas com os aplicativos.
Lekensteyn
fonte
1

No Ubuntu, você pode primeiro pressionar Ctrl+ Alt+, Tque abre o terminal. Depois disso, você pode copiar e colar o comando abaixo com Ctrl+ Ce colar no terminal com Ctrl+ Shift+ V.

pkexec chmod 0440 /etc/sudoers
K. Kilian Lindberg
fonte
0

Para mim, tive que adicionar mais uma etapa às pkexecsugestões, por isso , tive a sorte de ter duas sessões ssh acontecendo quando cometi o erro estúpido:

  1. Abra 2 terminais
  2. No terminal 2, execute echo $$para obter o PID
  3. Execute pkttyagent --process PID_FROM_STEP2no terminal 2
  4. No terminal 1, execute pkexec chmod 0440 /etc/sudoers
  5. No meu caso, eu também tive que correr pkexec chown root:root /etc/sudoers
4oo4
fonte