Ajuda a recuperar o SO corrompido (problema de permissões)

1

(Na parte inferior há uma atualização importante.)

Eu estava fazendo experimentos para fazer backup de uma conta remota no meu sistema local, o Ubuntu 12.04 LTS. Eu não estou confiante com a duplicidade e, provavelmente, devido à sintaxe errada, alguns arquivos locais foram substituídos por arquivos remotos. Esta é apenas uma suposição, não tenho certeza se esta é a causa real da corrupção do sistema operacional. A corrupção aconteceu depois de experimentar com backups, então acho que fiz algo errado a esse respeito.

Eu sabia que houve um problema quando tentei acessar um comando usando sudo :

$ sudo ls
sudo: unable to open /etc/sudoers: Permission denied
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin

É assim que o / etc / sudoers se parece:

$ ls -ald /etc/sudoers
-r--r----- 1 root root 788 Oct 2 18:30 /etc/sudoers

Neste ponto, tentei reinicializar e agora esta é a mensagem que recebo:

The system is running in low graphics mode.
Your screen, graphics card and input device
settings could not be detected correctly.
You will need to configure these yourself.

Eu tentei seguir o assistente para configurar essas configurações, mas sem sorte (o sistema me impede de continuar quando eu pressiono "Próximo").

O que me deixa um pouco menos preocupado é que todos os dados no disco parecem legíveis e eu posso acessá-los usando um live cd. Eu corro memtest e RAM parece estar bem.

Você tem alguma ideia sobre como recuperar meu sistema? Estou muito feliz em fornecer mais informações, deixe-me saber quais informações podem ser úteis.

UPDATE. A questão é sobre permissões erradas e foi assim que descobri: montei a partição raiz do sistema operacional corrompido em /mnt/broken/ (live CD) e fiz ls /mnt/broken/ . Recebi um erro de permissão negada, enquanto esperava ter a listagem do diretório. Eu tive que fazer sudo ls /mnt/broken/ e isso funcionou. Assim, sem ter permissão de root via sudo, é impossível acessar a raiz do sistema operacional quebrado.

A saída atual de ls -ld /mnt/broken/ é:

drwxr-x--- 29 1000 812 4096 2012-12-08 21:58 /mnt/broken

Alguma ideia de como restaurar o antigo conjunto de permissões?

    
por Paolo 09.12.2012 / 17:52

1 resposta

1

Se o sistema de arquivos foi montado somente para leitura, execute mount -n -o remount,rw / para montar a raiz com suporte a leitura / gravação. Tudo bem, vamos seguir em frente.

Você pode usar pkexec como uma alternativa para sudo por enquanto.

Antes de mais nada, certifique-se de ter privilégios de root por groups <username> e procure sudo na saída.
Se sua conta não estiver no grupo sudo , adicione-a ao grupo sudo por usermod -a -G sudo <username>

em seguida, verifique as permissões no diretório / etc e veja se ele possui permissões definidas acima ou pelo menos 544 , o que significa que você pode ler pelo menos. Use chmod 751 /etc para definir permissões apropriadas
Então novamente chmod 440 /etc/sudoers para definir permissões apropriadas para o arquivo sudoers
Em seguida, verifique se lsattr /etc/sudoers mostra pelo menos - - e - /etc/sudoers
Use chattr +e /etc/sudoers se você não puder ver " e " na saída do último comando.

Erro de sintaxe?

Se o problema ainda persistir, talvez você queira procurar no arquivo sudoers qualquer erro de sintaxe ou apenas exportar o conteúdo para um arquivo por cat /etc/sudoers >> /home/<username>/sudoers.txt e mostrá-lo para nós.

Avança!

Eu não recomendarei isso se você não tiver experiência suficiente com o Linux, mas sempre terá a opção de reinstalar o pacote sudo com apt-get install --reinstall sudo enquanto estiver logado como root no modo de recuperação e, em seguida, configurar o arquivo sudoers com visudo editor apenas .

Primeiro, combine o conteúdo não comentado no arquivo sudoers com o conteúdo escrito abaixo e, se necessário, faça as alterações sempre que possível.

Caso decida reinstalar e configurar o sudo , você basicamente precisará adicionar somente ao arquivo sudoer, se ainda não estiver presente:

Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
root ALL=(ALL:ALL) ALL
%admin ALL=(ALL) ALL
%sudo ALL=(ALL:ALL) ALL

Como nota final e aviso, você precisa editar o arquivo com apenas visudo /etc/sudoers como raiz e depois de concluir a edição do conjunto de arquivos, as permissões adequadas, por exemplo, 440

    
por Gufran 09.12.2012 / 23:55