Como funcionam as permissões de pastas aninhadas?

3

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

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

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

O público é realmente público?

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

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

Nota: estou em um Ubuntu 12 VM

    
por HappyDeveloper 25.05.2012 / 18:03

1 resposta

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

Um usuário que não é o proprietário de ~/Private/ e ~/Private/Group não poderá acessar a pasta Pública com essas permissões.

No Unix / Linux, você deve adicionar o bit de execução para um usuário poder atravessar (alterar ou acessar) um diretório. Mas você não precisa conceder acesso de leitura. Então tente isso em vez disso. Mas lembre-se de que o usuário deve saber que os diretórios Group e Public existem, não haverá maneira de usar ls para ver se eles existem, a menos que eles também tenham acesso de leitura.

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

does it matter whether I use -R when doing 'chmod 700'

Se você executar esse comando, você vai alterar as permissões de cada arquivo em um diretório abaixo do diretório que você deseja, se você tiver alguma coisa com permissões diferentes, elas serão perdidas. Eu suspeito que você também esteja adicionando o bit de execução a muitos arquivos regulares, o que geralmente é indesejável.

Você pode querer usar um comando como este. Isso somente alterará as permissões no diretório e nos 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
    
por 25.05.2012 / 21:37

Tags