Eu tenho vários hosts virtuais do Apache no local padrão:
Esses diretórios são de propriedade do usuário www-data
e do grupo www-data
, com permissões definidas para 770 ( drwxrwx---
).
Eu SFTP nesses diretórios como travis
, que é membro do grupo www-data
.
Aqui está o meu desafio: Eu gostaria de criar um segundo usuário do SFTP, chamado chris
, que só tem permissão para acessar um desses diretórios (exemplo3. com).
Então eu tentei isso:
example3-www-data
sudo chgrp -R example3-www-data /var/www/example3.com/htdocs
www-data
a example3-www-data
como um grupo secundário (para que o Apache tivesse permissão para ler a partir do exemplo3.com webroot) chris
, com example3-www-data
como grupo principal Então: o grupo principal chris
'tem a propriedade do diretório htdocs
, então ele deve poder acessá-lo. E o usuário www-data
também pertence a esse grupo - portanto, o Apache também deve poder acessar o diretório. Tudo deve funcionar, né?
Não! Quando faço login como chris
(seja via SFTP ou via shell), sou informado de que não tenho permissão para acessar /var/www/vhosts/example3.com/htdocs
.
Por que isso? É porque chris
não tem acesso aos diretórios parent (por exemplo, /var/www/vhosts
)? (Eu não quero dar a ele acesso aos diretórios pai, se eu puder evitá-lo - lembre-se, o ponto principal é restringir seu acesso a este diretório específico. Eu também prefiro não fazer desta pasta seu diretório pessoal, porque eventualmente haverá vários usuários que precisam do mesmo acesso.)
Basicamente: como posso organizar minhas permissões de usuários / grupos / arquivos de forma que:
travis
pode fazer upload de arquivos para todos os três webroots, e
chris
pode somente carregar arquivos em /var/www/vhosts/example3.com/htdocs
, e
Desculpe pela pergunta do n00b; Eu realmente não entendo como as permissões de arquivos do Linux devem ser aplicadas em situações como esta. (Qualquer princípio geral / dicas / links nessa área seria muito apreciado.)
Eu duvido que seja importante, mas estou executando o Ubuntu 14.04 LTS.