matdavy Posted November 12, 2020 Posted November 12, 2020 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?
matdavy Posted November 12, 2020 Author Posted November 12, 2020 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
fredericopissarra Posted November 12, 2020 Posted November 12, 2020 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 Fernando Mercês Posted November 12, 2020 Administrators Posted November 12, 2020 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!
Recommended Posts
Archived
This topic is now archived and is closed to further replies.