Definindo permissões globais navegáveis para subdiretórios (r-x), mas tornando os arquivos inacessíveis para todos, exceto os membros do proprietário e do grupo

0

Eu normalmente tenho um diretório onde quero que todos os usuários possam navegar, mas com arquivos ilegíveis e impossíveis de serem executados.

Eu vejo algumas perguntas relacionadas que não correspondem exatamente ao que eu quero:

  • Esta questão está usando umask . Não se aplica, pois esses arquivos já estão criados.

  • Esta questão está usando ACLs. Eu quero usar permisisons UNIX aqui.

Eu costumo usar um comando find , mas estou ciente de que ele tem alguns pontos fracos. Vou postar isso como uma resposta em potencial junto com o porque eu acho que pode haver uma maneira melhor.

    
por Belmin Fernandez 09.10.2014 / 15:37

3 respostas

1

Eu normalmente uso o seguinte:

find . -type f -print0 | xargs -0 sudo chmod 440
find . -type d -print0 | xargs -0 sudo chmod 555

No entanto, isso não leva em conta os executáveis. Eu estava pensando em fazer algo assim para arquivos:

find . -type f -print0 | xargs -0 sudo chmod ug+r ug-w o-rwx

Mas ainda são dois comandos e não tenho certeza se esse é o melhor caminho. Talvez alguém tenha uma proposta melhor.

    
por 09.10.2014 / 15:44
1

Bem, apenas não defina as mesmas permissões no diretório e nos arquivos nele:

$ chmod g+rx directory/
$ chmod g= directory/*

Aqui, os membros do grupo podem entrar e navegar no diretório, mas não poderão ler os arquivos dentro dele.

Editar: sobre o seu novo título, eu sugiro:

$ chmod a+rx directory/
$ chmod u=rwX,g=rX,o= *
    
por 09.10.2014 / 15:46
0

Para diretórios e arquivos já criados:

find /start_directory -type d -exec chmod 755 {} \;

find /start_directory -type f -exec chmod 660 {} \;

Se seus usuários puderem criar novos arquivos e / ou subdiretórios, forneça mais detalhes, pois a solução depende dos requisitos exatos.

    
por 09.10.2014 / 16:16