Gerenciando permissões de usuário arbitrárias em PureFTPd

3

Eu preciso fornecer um serviço FTP que precise ser gerenciado pela web da maneira mais simples possível. Meu cliente quer criar pastas e usuários e dar a eles acesso somente leitura ou leitura / gravação arbitrariamente.

Por exemplo:

A pasta "Documentos" deve ser lida apenas para vários usuários, gravável para usuários internos e invisível para o restante.

A pasta "Imagens" deve ser lida apenas para jornalistas, gravável para associados e invisível para o restante.

A pasta 'Mídia' deve ser somente de leitura, gravável ou invisível para usuários arbitrários especificados no administrador.

Pode haver um grande número de usuários e pastas.

Não consigo encontrar uma boa maneira de conseguir isso.

Eu achei que poderia dar a cada usuário uma pasta pessoal e colocar links simbólicos para as pastas que ele acessou, e tornar o usuário parte do grupo da pasta quando ele tiver acesso de gravação também, mas agora acho que isso não aconteceria. t trabalho, porque com PureFTPd (ou ProFTPd) só posso especificar o mapeamento do usuário virtual para um usuário do sistema e apenas um GUID para cada usuário virtual. Minha abordagem requer que eu possa especificar vários GUIDs para cada usuário (um por cada pasta para a qual ele tenha acesso de gravação).

Eu preciso começar a programar este admin e ainda não sei qual abordagem funcionaria, se houver.

A pergunta é: Como dar permissões arbitrárias para 20 pastas ou mais, para um grande número de usuários de FTP?

    
por Sebastián Grignoli 16.01.2011 / 18:58

1 resposta

3

O ACL funcionará para você? Para o Ubuntu 10.10, monte os sistemas de arquivos com a opção acl.

sudo vim /etc/fstab

UUID = padrões xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx / ext4, acl 0 1

sudo mount -o remount,acl /

(ou talvez haja uma partição / home / separada?) Crie grupos para esse propósito.

sudo groupadd journalists
sudo groupadd associates
sudo usermod -a -G journalists $username_1
sudo usermod -a -G associates $username_2

(Os usuários precisam sair e entrar novamente para se tornarem membros de um grupo.)

Apenas para ilustrar em um diretório, / home / ftp / Pictures, para realizar "A pasta 'Pictures' deve ser lida apenas para jornalistas, gravável para associados e invisível para o restante.":

sudo chown -R root.associates /home/ftp/Pictures
sudo chmod 0770 /home/ftp/Pictures
sudo chmod g+s /home/ftp/Pictures
sudo setfacl -d -m u::rwx,g::rwx,o::--- /home/ftp/Pictures
sudo setfacl -d -m u::rwx,g:journalists:r-x,o::--- /home/ftp/Pictures

Agora você tem membros do grupo de associados capazes de ler / escrever tudo em / home / ftp / Pictures, enquanto os membros de jornalistas só podem ler (executar) e todos os outros não têm permissão alguma.

Se quiséssemos restringir a exclusão e renomeação de todos, exceto do usuário que criou o arquivo:

sudo chmod +t /home/ftp/Pictures
    
por user8290 17.01.2011 / 18:57

Tags