Executei o comando acidentalmente
sudo chmod -R o+x /home
no meu Ubuntu 12.10.
Agora, o que devo fazer? isso é perigoso? Não tenho backup de partição, então acho que este comando não é reversível. ENTÃO eu devo reinstalar todo o sistema por causa desse erro?
Responder1
A melhor maneira de corrigir isso depende dos detalhes de como o seu sistema está configurado. Felizmente, você provavelmente conhece esses detalhes.
Em arquivos, +x
significa que eles podem ser executados como um programa. (Na verdade, confere a permissão paratentar. Se não forem binários executáveis reais ou arquivos de script comuma linha hashbang, isso ainda falhará.)
Em diretórios (ou seja, pastas), o+x
permissãosignifica outra coisa. As permissões executáveis em uma pasta conferem a capacidade de entrar na pasta e em suas subpastas (embora suas subpastas possam não ter as permissões necessárias para isso) e de tentar acessar arquivos dentro da pasta (os arquivos podem ou não ter permissões que permitem isso para ter sucesso).
Isto foi o+x
. o
apoiaoutro. Isso controla as permissões de usuários que não são proprietários do arquivo ou pasta e também que não são membros do “proprietário do grupo” do arquivo ou pasta.
Se você não usa permissões para compartilhar arquivos com outros usuários locais
Se um usuário (digamos, você) não precisar compartilhar arquivos com outros usuários, então é seguro retirar permissões executáveis paraoutro, contanto que você apenas faça issoem qualquer lugar dentro da sua pasta pessoal. Sua pasta pessoal é onde/home/username
username
é substituído pelo seu nome de usuário real. /home
não é em si a sua pasta pessoal, mas sim a pasta quecontémtodas as pastas iniciais. Como /home
ele próprio não pertence a nenhum usuário humano do computador,é imperativo que as permissões executáveis paraoutronão ser removido de /home
si mesmo.
Então, você pode executar:
cd ~
~
representa sua pasta pessoal. (O shell interpreta assim, você pode digitar exatamente isso.)
Então você pode executar:
chmod -R o-x .* *
Ou se você quiser evitar que outras pessoas mudem de diretório para sua pasta pessoal também:
chmod -R o-x ~
É intencional que eu não tenha escrito sudo
. Você ainda possui os arquivos em sua pasta pessoal, portanto não precisa do sudo
, e deixá-lo desativado ajudará a evitar a alteração acidental de permissões em arquivos e pastas errados. (Em particular, /home
é propriedade de root
, portanto, ao deixar de fora sudo
, você garante que não está alterando acidentalmente as permissões /home
e tornando seu sistema inutilizável.)
Se vocêFazerAtualmente use permissões para compartilhar arquivos com outros usuários locais
Se você tiver algumas pastas que compartilha com outros usuários na máquina (se tiver, é quase certo que sabe que sim), poderá usar o método acima e adicionar manualmente permissões executáveis nessas pastas específicas. Mas se você tiver muitos para que isso seja prático, especialmente se não estiver preocupado com o fato de outros usuários acessarem coisas que não deveriam, você pode quererapenasremover permissões executáveis dearquivos, e não depastas.Depois de fazer isso, você pode retirar seletivamente as permissões executáveis de algumas pastas, é claro.
Para remover permissões executáveis paraoutrode todos osarquivosna pasta pessoal do seu próprio usuário, mas não nos diretórios, execute:
find ~ -type f -exec chmod o-x \{\} \;
(Você notará que isso é semelhante a um dosSugestões de SEngstrom. Verman find
para obter informações sobre como isso funciona.)
Responder2
Você acabou de alterar as permissões de arquivo em todos os arquivos do usuário para executáveis (e os diretórios para pesquisáveis, que é o padrão) para todos os usuários - provavelmente não é o que você deseja, mas provavelmente também não é o fim do mundo - especialmente se você for o único usuário na máquina .
Uma coisa que você pode fazer é ativar find
os diretórios de documentos e desativar esse sinalizador executável para arquivos regulares, se isso o incomodar.
Se o sistema estiver novo, posso considerar uma reinstalação apenas para deixá-lo limpo e limpo :)