Chmod recursivo sem sudo

1

Eu acidentalmente executei o seguinte: chmod -R 741 /* (esqueci o ponto, sim). Então, a próxima coisa que sei é que meu terminal está repleto de erros e eu paro no diretório / mnt /. Nesse ponto, percebo que erro terrível cometi e meu terminal está morto. Depois de algumas cutucoes eu retornei 755 para o meu diretório home e tudo parece estar funcionando bem agora. No entanto, eu poderia quebrar alguma coisa no sistema? Eu não usei sudo , então eu acho que não estraguei tanto? E posso restaurar pelo menos algumas permissões padrão para o diretório home, desde que eu tenha outro usuário não contaminado por meus erros?

    
por Moorindal 01.08.2016 / 20:13

2 respostas

1

Como outros apontaram, sem permissões de root, você não terá danificado nenhuma parte do sistema. Você terá alterado as permissões nos arquivos e diretórios que você possui.

Veja como você pode retorná-los a um conjunto de valores (principalmente) sadio:

chmod u=rwx,go= ~                                              # Ensure we can access our home directory
cd                                                             # Let's go...
find . -type d -exec chmod u=rwx,go=rx {} +                    # All directories
find . ! -type d -exec chmod u=rw,go=r {} +                    # Everything else
find .bash_history .config .gnupg .ssh -exec chmod go= {} +    # Lock out sensitive data

Isso definirá todas as permissões do diretório para que você possa ler / escrever / pesquisar e todas as outras pessoas possam lê-las / pesquisá-las. Altere go=rx para go= se você quiser impedir que alguém acesse seus diretórios.

Em seguida, ele definirá todas as permissões de arquivo para que você possa ler / gravar e todas as outras pessoas possam lê-las. Altere go=r para go= se você quiser manter o conteúdo do seu arquivo privado.

Por fim, removerá todo o acesso de diretórios sensíveis para todos, exceto você.

Se você tiver arquivos executáveis (programas, scripts), precisará adicionar o bit executável novamente:

chmod a+x ~/some/important/program

Como antes, isso dá a todos ("todos") direitos para executar o programa. Altere a+x para u+x se você quiser isso apenas por si mesmo.

    
por 01.08.2016 / 21:24
1

Como você executou isso sem usar sudo , qualquer arquivo ou diretório que seja crítico para o sistema não será afetado.

Você pode ter alterado as permissões em todos os seus próprios arquivos e diretórios, e dependendo do que você tem em $HOME , isso pode ou não ser um grande problema para você.

Você pode ter tornado todos os seus arquivos executáveis por conta própria e por "outros". Seria bastante simples, em um pequeno conjunto de arquivos, alterar manualmente as permissões para arquivos regulares de volta para 644 ( 755 para diretórios), ou qualquer que tenha sido o padrão.

Você não precisa ser root para fazer isso.

    
por 01.08.2016 / 21:10