Você pode usar Listas de controle de acesso (ACLs) para isso, dando permissões adicionais a um usuário específico para um arquivo específico ou diretório.
Primeiro, certifique-se de que o sistema de arquivos em questão tenha a opção acl
ativada: normalmente, ela será por padrão, mas você pode adicioná-la às opções em fstab
(e / ou remontar).
Com as ACLs ativadas, você controla a ACL em um determinado arquivo ou diretório usando o comando setfacl
:
setfacl -m "user:vonflynee:rwx" /home/foo/www
Isso define uma permissão por usuário para o usuário vonflynee
de rwx
(formatado como chmod
) para esse diretório específico, além das permissões que o proprietário do arquivo já possui. Você pode ter várias especificações de ACL para um arquivo específico para diferentes usuários e grupos com os quais precisa lidar e eles podem ter qualquer combinação de permissões diferentes.
Tal como acontece com outras permissões, você precisa ser capaz de percorrer toda a árvore até o arquivo que deseja acessar, assim você pode precisar definir outros na árvore, e você precisará acessar os arquivos também. setfacl
suporta um modo --recursive
para definir permissões em uma árvore inteira.
Outra opção, e a mais convencional, é simplesmente criar um novo grupo " vonflyneeandfoo
", adicionar usuários a ele, chown -R
o diretório a esse grupo, chmod g+s
o diretório para que novos arquivos herdem seu grupo e, em seguida, chmod -R g+rX dir
para dar permissão de gravação ao grupo de arquivos.
Se houver apenas um único caso, você precisará lidar com isso, provavelmente, será a opção mais simples. Mesmo que seja, se você tiver muitos usuários locais e estiver contando com apache
sendo um membro do grupo, então, fazer as permissões de leitura funcionarem é mais difícil e as ACLs serão mais convenientes para você.