Para dar a alguém acesso de leitura a um arquivo seu, ele precisa ter permissão de leitura no arquivo e permissão de execução em todos os diretórios que levam ao arquivo. Por exemplo, para permitir que Alice leia /home/david/for_alice/foo.jar
, você precisa garantir que Alice tenha permissão de leitura para foo.jar
e permissão de execução em /home/david
e /home/david/for_alice
. A permissão de execução em um diretório é necessária para acessar arquivos dentro desse diretório pelo seu nome; a permissão de leitura em um diretório é necessária para listar os nomes dos arquivos no diretório. A permissão de leitura nos diretórios não é estritamente necessária, mas é mais conveniente, especialmente se Alice usar uma GUI para navegar pelos arquivos.
No momento, o seu diretório pessoal tem as permissões rwx------
, ou seja, somente você pode acessar arquivos nele.
Se os arquivos forem locais e as ferramentas de ACL estiverem disponíveis, você poderá conceder acesso a Alice. Os comandos a seguir dão a Alice acesso de leitura a for_alice
e todos os arquivos abaixo, mas não permite que ela liste os arquivos em seu diretório pessoal (ela ainda pode acessar arquivos em seu diretório pessoal se adivinhar seu nome):
setfacl -m user:alice:x ~
setfacl -Rd -m user:alice:rX ~/for_alice
setfacl -R -m user:alice:rX ~/for_alice
Se as ACLs não forem possíveis, você terá que permitir acesso em todo o grupo ou em todo o sistema.
chmod +x ~
chmod -R a+rX ~/public