Como posso restringir um usuário SFTP a um único vhost, enquanto permite que outro usuário acesse múltiplos?

2

Eu tenho vários hosts virtuais do Apache no local padrão:

  • /var/www/vhosts/example1.com/htdocs
  • /var/www/vhosts/example2.com/htdocs
  • /var/www/vhosts/example3.com/htdocs

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:

  • criou um novo grupo chamado example3-www-data
  • forneceu a nova propriedade do grupo da webroot: sudo chgrp -R example3-www-data /var/www/example3.com/htdocs
  • adicionou o usuário 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)
  • criou um novo usuário chamado 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:

  • o usuário travis pode fazer upload de arquivos para todos os três webroots, e
  • o usuário chris pode somente carregar arquivos em /var/www/vhosts/example3.com/htdocs , e
  • O Apache pode ler / gravar / executar arquivos enviados por qualquer usuário, sem a necessidade de ajustar manualmente as permissões de arquivo após o upload?

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.

    
por greenie2600 14.07.2015 / 17:08

0 respostas