ACLs vs permissões de grupo no linux

0

Gostaria de permitir que um conjunto de alunos acessasse um servidor da Web compartilhado. Os alunos trabalham em grupos e o diretório inicial de cada grupo contém uma pasta www que deve estar acessível à instância compartilhada do apache2. Por exemplo, se Bob e John fizerem parte do grupo MyPetShop, você terá o usuário john nos grupos john students mypetshop . Eu não quero conceder www-data aos alunos, para evitar que eles estraguem as páginas de outras pessoas diretamente *.

E a diretiva home deles estaria em /home/students/mypetshop , com /home/students/mypetshop/www sendo lido / gravado para o usuário www-data . Eu posso conseguir isso usando

  • um grupo fixo de www-data para essas pastas (para que suas permissões sejam drwxrwsrwx john www-data ). Isso tem o problema de john usar as permissões erradas para seus arquivos, para que bob ou www-data não possam acessá-los; ou www-data criando arquivos que o john e o bob só podem tocar quando tiverem permissão por algum tempo.
  • propriedade de grupo padrão ( mypetshop ) e uma ACL que permitiria www-data de acesso a essas pastas (via setfacl -m d:g:www-data:rwx www ).

As ACLs funcionariam aqui como pretendido? As ACLs padrão são herdadas automaticamente em subpastas, ou há alguma maneira muito mais fácil de configurar isso que estou perdendo?.

(*) sim, isso não é à prova de erros, pois eles poderiam escrever phps executados em www-data para fazer isso por eles ...

    
por tucuxi 04.02.2013 / 09:50

1 resposta

0

Implementei a versão ACL e funciona como um encanto. Os alunos não podem atrapalhar suas permissões de grupo usando clientes SSH / SFTP padrão (que não reconhecem a ACL). Definitivamente recomendado para uma configuração de hospedagem compartilhada, não muito alta segurança.

A sequência é:

  1. Adicione as ferramentas de ACL setfacl e getfacl (pacote debian / ubuntu acl )
  2. Adicione a opção acl ao sistema de arquivos relevante em seu /etc/fstab (sistemas de arquivos sem essa opção de montagem silenciosamente ignoram as ACLs; isso é confuso na melhor das hipóteses).
  3. Use setfacl para permitir que o usuário www-data acesso de diretório transversal a todas as /home/stucents/*/www pastas
  4. Use setfacl para permitir, em cada pasta www , o acesso de leitura / gravação padrão (= fixo) para membros do grupo relevante e o usuário www-data

Qualquer arquivo ou pasta criada em uma pasta com uma ACL padrão herdará a ACL.

    
por 07.02.2013 / 19:56