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?
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).
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
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).
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), é.
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.
Inicialize em um Live CD e selecione "Experimente"
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
Abra um Terminal , vá para Aplicativos => Acessórios => Terminal
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.
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 {} \;
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
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.
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.
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:
/etc/sudoers.d/README
, que o erro ainda pode indicarsudo: /etc/sudoers is mode 0777, should be 0440
?Respostas:
Primeira opção
Após este post :
Um terminal preto deve aparecer, neste ponto você pode executar este comando (você deve ter privilégios de root):
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:
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:
Corrija seguindo com:
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).
fonte
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
sudo
do primeiro, o segundo deve ser feito a partir de um Live CD.chmod 0440 /etc/sudoers
sem o sudo, pois o sudoers é gravável por todos?sudo
está quebrado nessa situação, maspkexec
(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.Isso pressupõe que o PolicyKit esteja instalado. Se este é um sistema de desktop (em vez de um servidor sem GUI), é.
fonte
Inicialize no modo de recuperação, escolha o shell raiz e:
Ou, se você não quiser reiniciar, poderá usar esta alternativa:
isso mudará a permissão. Experimente, vai funcionar.
fonte
chmod
inserindo alguns arquivos440
e outros0440
? Você não deve usar0440
uniformemente? E por que você está alterando as permissões/etc/sudoers.d/README
quando usa opkexec
caminho, mas não o contrário? E quanto a outros arquivos possíveis/etc/sudoers.d
?O que você fez para obter esses erros?
Se você fez
sudo chmod -R 777 /etc
:, precisará de um Live CD para reparar isso./etc
se você colocou/etc
uma partição separada). Isso pode ser feito usando um navegador de arquivos como o Nautilus ou o menu Locaisls -l /media
. É possivelmente nomeadoubuntu
oudisk
. Nas próximas etapas, vou assumirubuntu
.No Terminal, defina permissões restritivas por padrão:
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/ubuntu
usar a/etc
pasta 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.log
Erros 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.~/errors.log
algum lugar (como http://paste.ubuntu.com/ ) para que você possa adicioná-lo como comentário a esta resposta, caso tenha problemas com os aplicativos.fonte
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.
fonte
Para mim, tive que adicionar mais uma etapa às
pkexec
sugestões, por isso , tive a sorte de ter duas sessões ssh acontecendo quando cometi o erro estúpido:echo $$
para obter o PIDpkttyagent --process PID_FROM_STEP2
no terminal 2pkexec chmod 0440 /etc/sudoers
pkexec chown root:root /etc/sudoers
fonte