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.