Ir para conteúdo

chmod 777 -R /*


matdavy

Posts Recomendados

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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros sites

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 para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...