Jump to content

chmod 777 -R /*


matdavy

Recommended Posts

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?

 

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

  • Administrators

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!

Link to comment
Share on other sites

Archived

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

  • Recently Browsing   0 members

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