Jump to content

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 post
Share on other sites

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

Link to post
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 post
Share on other 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 to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...