Como funcionam as permissões das pastas aninhadas?

Como funcionam as permissões das pastas aninhadas?

1) Não tenho certeza de como funcionam as permissões de diretório aninhado.

Suponha que eu tenha os seguintes diretórios/arquivos e permissões:

~/Private/ 700
~/Private/Group 770
~/Private/Group/Public 777

Público é realmente público?

2) Se eu quiser tornar o Private realmente privado, faz diferença se eu uso -R ao fazer 'chmod 700'?

3) Eu li que o Ubuntu usa uma pasta inicial legível por palavras por padrão e se recusa a corrigi-la. Mas quando faço 'ls -lh' recebo isto: drwx------ (700, certo?). Então, qual é? Eles mudaram de ideia sobre a pasta pessoal?

Nota: estou em uma VM Ubuntu 12

Responder1

~/Private/ 700
~/Private/Group 770
~/Private/Group/Public 777

Um usuário que não é proprietário ~/Private/e ~/Private/Groupnão poderá entrar na pasta Pública com essas permissões.

No Unix/Linux você deve adicionar o bit de execução para que um usuário possa percorrer (mudar para dentro ou através) de um diretório. Mas você não precisa conceder acesso de leitura. Então tente isso. Mas tenha em mente que o usuário deve saber que os diretórios Grupo e Público existem, não haverá como usá-los lspara ver se eles existem, a menos que também receba acesso de leitura.

~/Private/ 711
~/Private/Group 771
~/Private/Group/Public 777

faz diferença se eu uso -R ao fazer 'chmod 700'

Se você executar esse comando, você alterará as permissões de cada arquivo em um diretório abaixo do diretório de destino; se você tiver algo com permissões diferentes, eles serão perdidos. Suspeito que você também adicionaria o bit de execução a muitos arquivos regulares, o que geralmente é indesejável.

Você pode querer usar um comando como este. Isso alterará apenas as permissões no diretório e subdiretórios, sem alterar as permissões nos arquivos.

find {directory_path} -type d -print0 | xargs --null -n 1 chmod 0700

Um comando semelhante para alterar apenas os arquivos ficaria assim.

find {directory_path} -type f -print0 | xargs --null -n 1 chmod 0600

informação relacionada