A melhor maneira de corrigir isso depende dos detalhes de como seu sistema está configurado. Felizmente, você provavelmente conhece esses detalhes.
Nos arquivos, +x
significa que eles podem ser executados como um programa. (Na verdade, ele concede a permissão para tentar . Se eles não são binários executáveis ou arquivos de script com uma linha de hashbang , isso ainda irá falhar.
Nos diretórios (ou seja, pastas), a permissão +x
significa outra coisa. Permissões executáveis em uma pasta confere a capacidade de inserir a pasta e suas subpastas (embora suas subpastas podem não ter as permissões necessárias para isso) e tentar acessar arquivos dentro da pasta (os arquivos podem ou não ter permissões que permitem isso para ter sucesso).
Este foi o+x
. o
significa outro . Isso controla as permissões dos usuários que não são donos do arquivo ou da pasta e também os que não são membros do "proprietário do grupo" do arquivo ou da pasta.
Se você não usa atualmente 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, é seguro remover permissões executáveis para outro , contanto que você o faça em todos os lugares dentro de sua pasta pessoal . Sua pasta pessoal é /home/username
, em que username
é substituído por seu nome de usuário real. /home
não é sua pasta pessoal, mas é a pasta que contém todas as pastas base. Como /home
em si não pertence a nenhum usuário humano do computador, é imperativo que permissões executáveis para outras não sejam removidas do próprio /home
.
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 também alterem o diretório para sua própria pasta pessoal:
chmod -R o-x ~
É intencional que eu não tenha escrito sudo
. Você ainda possui os arquivos em sua pasta pessoal, portanto, você não precisa do sudo
, e deixá-lo desativado ajudará a evitar a alteração das permissões dos arquivos e pastas incorretos por acidente. (Em particular, /home
é de propriedade de root
, portanto, deixando de fora sudo
, você garante que não está alterando acidentalmente as permissões para /home
e tornando seu sistema inutilizável.)
Se você fizer usa atualmente permissões para compartilhar arquivos com outros usuários locais
Se você tem algumas pastas que compartilha com outros usuários na máquina (se o fizer, então certamente sabe que sim), então você pode usar o método acima e adicionar manualmente permissões executáveis nessas pastas específicas. Mas se você tem muitos para que isso seja prático, então, especialmente se você não está preocupado com o fato de outros usuários acessarem coisas que eles não deveriam, você pode querer apenas remover as permissões executáveis de arquivos , e não em pastas. Depois de fazer isso, você pode seletivamente remover permissões executáveis de algumas pastas, é claro.
Para remover permissões executáveis para outras de todos os arquivos na pasta base do usuário, mas não nos diretórios, execute:
find ~ -type f -exec chmod o-x \{\} \;
(Você vai notar que isso é semelhante a um dos Sugestões da SEngstrom . Veja man find
para informações sobre como isso funciona.)