ProFTPd, MySQL, usuários virtuais e permissões

3

Eu quero controlar minha autenticação ProFTPd por um banco de dados MySQL. Os usuários poderão alterar o nome de usuário e a senha de suas contas FTP em um aplicativo da Web PHP. Isso provoca o seguinte problema: Os usuários configurados no banco de dados utilizável não correspondem aos usuários do sistema. Portanto, não consigo alterar as permissões do diretório no meu sistema de arquivos e o ProFTPd registra o erro:

username chdir("/var/www/vhosts/sites/username"): Permission denied

Mas como eu posso dar a esses usuários de FTP acesso a essas pastas? Se eu configurar um usuário chamado www-data , ele funcionará bem, mas os nomes de usuários não serão definidos em /etc/passwd .

A segunda coisa que quero gerenciar é a restrição desse único diretório, neste caso /var/www/vhosts/sites/username . O usuário não deve ter acesso a outros diretórios se eles não estiverem no diretório inicial acima.

Como corrijo isso?

    
por ffraenz 29.10.2011 / 12:10

1 resposta

3

Você terá que dar aos seus usuários virtuais proftpd a propriedade de seus arquivos e diretórios como se fosse um usuário real. Você pode fazer isso com chown . Como os usuários não são usuários do sistema, você terá que usar o UID numérico: GID, por exemplo, se nome de usuário for UID 10001 e GID 1111 (do banco de dados mysql), então

chown  10001:1111 /var/www/vhosts/sites/username
chown  -R 10001:1111 /var/www/vhosts/sites/username

deve fornecer controle de nome de usuário sobre seus próprios arquivos. Certifique-se de que o usuário www-data tenha acesso somente leitura adequado ao arquivo & diretórios, por exemplo dê o mundo r-x para diretórios e r-- para arquivos.

Se você definir o

DefaultRoot  ~

diretiva, os usuários serão confinados em sua própria árvore de diretórios.

    
por 29.10.2011 / 16:06