Gostaria que outros usuários do meu grupo pudessem acessar uma pasta específica no meu espaço de arquivos (e suas subpastas), sem poder acessar o restante dos meus arquivos.
[O motivo é que desejo compilar um aplicativo instrumentado para fazer cobertura de código usando gcov; os vários arquivos .gcno são gravados em meu diretório de construção, e eu gostaria que meus colegas, durante a execução de seus testes, acessassem esses arquivos e gerassem os arquivos .gcda que serão colocados ao lado deles.]
De qualquer forma, eu ingenuamente pensei que poderia fazer:
chmod g+w -fR build_directory
... e com certeza isso resulta no diretório de construção e todos os seus subdiretórios com permissões drwxrwxr-x. e todos os seus arquivos com permissões -rw-rw-r--. Mesmo assim, meus colegas do grupo relatam que mesmo tentando executar
ls -l <full path to build_directory>
retorna "Não é possível acessar: esse arquivo ou diretório não existe".
O que estou perdendo?
Encontrei a solução e é constrangedor.
Não havia nada de errado com minhas permissões. O problema era que a unidade na qual o diretório reside era local para o servidor em que eu estava executando, e não uma unidade de rede. Meus colegas estavam trabalhando em outros servidores, então a unidade de rede do meu servidor não estava visível para eles.
Não é à toa que a mensagem de erro foi “Não é possível acessar: esse arquivo ou diretório não existe”.
Quando meus colegas fizeram login em suas contas no mesmo servidor, para que o disco local ficasse visível, tudo funcionou conforme o esperado.