(usando Ubuntu 12.04)
Preciso configurar um serviço FTP onde um conjunto específico de usuários possa gravar no diretório e outro conjunto só possa ler.
Estou pensando que é difícil fazer isso para um único diretório, porque embora eu possa definir os bits de grupo do diretório como somente leitura ou leitura/gravação, não consigo associar o diretório a dois grupos em dois níveis de segurança diferentes. Estou correcto? Como posso fazer isso se não?
Estou pensando em criar dois diretórios, um com os bits do grupo configurados para leitura e gravação e associados ao grupo de gravação, e outro com os bits configurados como somente leitura e associados ao grupo de leitura. Então, esperançosamente, existe uma maneira de vincular o diretório de leitura aos arquivos que foram gravados no diretório do grupo 'gravar'. Isso funcionará, como posso fazer isso?
Uma resposta detalhada é melhor, mas posso fazer a pesquisa e relatar aqui se conseguir alguma orientação sobre qual abordagem devo adotar e quais tecnologias devo aprender (por exemplo, links ou ACLs - que ouvi de mas não usei). Eu gostaria de fazer isso direito e agradeço qualquer ajuda que puder obter.
Responder1
Vinculando diretóriosnão vaitrabalhar. Se você criar um link simbólico, os direitos do link simbólico não importarão, apenas os direitos do diretório original. Diretórios hardlinking geralmente não são permitidos pelo sistema operacional.
Primeira solução:
Basta deixar o sistema de arquivos do sistema operacional fora dele e usar um servidor FTP que tenha a capacidade de restringir os usuários a somente leitura ou somente gravação. ncftpd
vem à mente.
Segunda solução:
É importante que esses arquivos não possam ser lidos por ninguém além do grupo 2? Se isso não for importante, a maneira mais fácil seria definir o diretório como legível para outros, mas apenas gravável para grupos.
Terceira solução (a pior, IMO)
Outro método seria ter dois diretórios separados, um para cada grupo, e executar um cron job a cada 5 minutos para copiar (ou mover) os arquivos de cada diretório.