Jump to content

chmod 777 -R /*


matdavy

Recommended Posts

Posted

Olá Pessoal estava resolvendo uma solução front-end e não estava conseguindo acessar a pasta onde poderia codificar e usar o comando code . para abrir o VsCode, pois dava erro de permissão , logo me veio a ideia de usar o chmod 777 -R /pasta, porém o sistema acabou dando o comando em todas as pastas do sistema e alterando as permissões alguém sabe como posso reverter?

 

Posted

Meu sistema nem abre mais, mesmo entrando em modo recovery e tentando restaurar os arquivos que estão quebrados, nada acontece, apenas consigo acessar o terminal do recovery mode, dei um cd /bin ls  -lah e ele me lista os arquivos, todos como root 

5c895549-6440-426c-814c-75e9e553fe92.jpg

32b0da9c-8615-41f5-a06b-7fc1138d14ec.jpg

Posted

TODOS os arquivos em /bin são de propriedade do root mesmo.

O problema é que modificações feitas como root geralmente não podem ser "revertidas". Você terá que mudar as permissões manualmente (assim como as mudou antes, manualmente!).

Eis o problema com seu chmod... Alguns arquivos precisam do flag SETUID lidados a permissão é rwsr-xr-x. Ao usar 777 você sobrescreveu isso.

Outros diretórios não podem estar acessíveis para usuários comuns (sbin, por exemplo)... Alguns arquivos não podem ter permissões para usuários comuns (alguns de /boot, por exemplo)...

Como regra geral: UNIX (e Linux) faz o que você mando ele fazer, errado ou não...

Acho que sua única saída é fazer o backup de seus arquivos (ajudaria se os mantivesse em outro disco ou numa partição isolada para /home), e instalar o Linux de novo...
 

 

E não use login como root (mesmo sudo -s ou sudo -i)... É fácil fazer besteira como root.

  • Administrators
Posted

De fato.. Será que o sistema não sobe por conta do SUID? Talvez uma solução seja , olha que loucura, instalar a mesma versão do Ubuntu em uma máquina virtual e gerar uma lista em txt com as permissões de todos os arquivos, aí copiar este txt para o seu Ubuntu que tá zuado e restaurar. Seria algo assim:

1. Primeiro vamos gerar um padrão na máquina afetada, de modo que todo diretório seja 0755 e todo arquivo 0644 (valores comuns para ambos):

# find / -type d -exec chmod 0755 {} \;
# find / -type f -exec chmod 0644 {} \;

2. Depois, usamos o comando find na VM de Ubuntu recém-instalada (mesma versão) pra gerar uma lista com os caminhos dos arquivos e suas permissões originais, separados por tab:

# find / -printf '%p\t%m\n'
/bin	755
/bin/ls	644
/var	755
/var/log	755
/var/log/httpd.log	644

Estando tudo certo, é só gerar uma lista:

# find / -printf '%p\t%m\n' > lista.txt

3. De volta à máquina afetada, copiar o lista.txt para ela e fazer um loop que vai ler o conteúdo deste arquivo e passar como parâmetros para o chmod. Aqui prefixei todo o comando com o comando echo só pra ver como ficaria:

$ while read -r arq perm; do echo chmod "$perm" "$arq"; done < lista.txt
chmod 755 /bin
chmod 644 /bin/ls
chmod 755 /var
chmod 755 /var/log
chmod 644 /var/log/httpd.log

Se remover o comando echo, o chmod é executado:

$ while read -r arq perm; do chmod "$perm" "$arq"; done < lista.txt

Se o seu problema for mesmo só de permissionamento mesmo, pode funcionar, mas é por sua conta em risco. ?

Caso resolva tentar, posta aí mensagens de erro que possivelmente apareçam, etc.

Abraço!

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...