Configuração de permissões multiusuário

4

Eu tenho tentado descobrir um bom esquema de permissões para o meu servidor de arquivos multiusuário. Eu atualmente tenho cerca de 5 usuários, cada um armazenando arquivos em seu diretório home. Esses arquivos também estão sendo acessados por vários aplicativos na máquina, como um servidor da web executando ownCloud e o aplicativo BitTorrent Sync. Esses aplicativos são executados sob sua própria conta de usuário. Estou procurando um esquema de permissões para conseguir o seguinte:

Nenhum usuário deve poder acessar o diretório pessoal de outro usuário (exceto possivelmente eu, como administrador)

- As contas de usuário do aplicativo devem ter acesso total a todas as contas de usuário (assumiremos que o isolamento de acesso do usuário é implementado corretamente nos próprios aplicativos ou isso violaria a regra 1)

-Os arquivos criados pelas contas de usuário do aplicativo ainda devem estar acessíveis pelo usuário em cujo diretório inicial eles foram criados

Neste momento, o melhor que consegui criar é adicionar todos os aplicativos ao grupo www, e depois criar os diretórios home dos usuários como: www 770, mas isso não parece boa solução. Outra ideia que tive foi usar os grupos específicos do usuário (ou seja, os grupos com o mesmo nome dos usuários) e depois criar o diretório base como: 770 e, em seguida, adicionar o nome de usuário do aplicativo ao grupo de cada usuário separadamente. Além disso, há a possibilidade de usar pedaços pegajosos, mas não tenho certeza de como isso funciona. Eu provavelmente deveria especificar que este é um servidor FreeNAS, pois eu entendo que os sticky-bits funcionam de maneira um pouco diferente no BSD vs Linux.

Alguma ideia? Como um usuário nativo do Windows, essa é uma daquelas coisas que eu poderia ter feito em 5 minutos com o ACL, mas c'est la vie ...

    
por qwertymodo 13.03.2016 / 07:36

1 resposta

0

Por exemplo, dando Um servidor web (ou qualquer servidor externo acessível) completo acesso (leitura, gravação e execução) aos arquivos de um usuário não é uma boa idéia do ponto de vista da segurança. Como regra , você deve restringir isso para ler o acesso de arquivos e ler / executar para diretórios. De fato, o padrão no FreeBSD é dar acesso a others read a um arquivo de usuários. Isso tornaria sua vida muito mais fácil, mas vai contra o seu primeiro ponto.

Uma solução ainda melhor é executar o servidor da Web em um jail e gerar uma cron job (em execução como root) que usa, por exemplo rsync para espelhar os arquivos acessíveis pelo usuário para um diretório na cadeia.

Para coisas como o bittorrent eu também faria um único diretório onde o cliente bittorrent possa ler e escrever coisas. Configure esse diretório para um grupo torrents que tenha acesso de leitura / gravação e torne todos os usuários membros desse grupo.

Editar:

Se você estiver montando dentro da jaula com a configuração nullfs , os direitos de grupo do diretório para leitura / gravação soam como uma boa opção. A cadeia deve fornecer isolamento.

Eu usei um combinação de nullfs e unionfs para disponibilizar arquivos, mas para colocar modificações em outro lugar. Então você pode colocar coisas recebidas do torrent em um diretório uploads sem tocar no material no diretório files .

    
por 30.03.2016 / 12:04