J'utilise ProFTPd 1.3.5a (j'obtiens le même comportement avec une ancienne version 1.3.4d) avec une configuration d'utilisateurs virtuels assez commune pour un serveur web.
En d'autres termes, ProFTPd fonctionne avec l'UID/GID d'apache et dispose de ses fichiers locaux pour l'authentification. Tous les utilisateurs ont le même UID/GID réel (encore une fois, celui d'apache) et sont chrootés dans leurs répertoires, avec des entrées DirFake*.
C'est un extrait de la configuration :
AuthPAM off
AuthOrder mod_auth_file.c
AuthUserFile /etc/proftpd/ftpd.passwd
AuthGroupFile /etc/proftpd/ftpd.group
UseFtpUsers off
DefaultRoot ~
DefaultChdir /
DirFakeUser on ~
DirFakeGroup on ~
DirFakeMode 0644
ShowSymLinks off
Umask 026 027
<Directory ~/>
UserOwner www-data
GroupOwner www-data
</Directory>
Mais avec chaque client ftp que j'essaie, lorsque je liste les fichiers, je n'obtiens que l'UID/GID numérique et non le nom d'utilisateur virtuel. C'est également ennuyeux parce que des clients tels que CyberDuck supposeront que l'ID numérique n'est pas le même que l'utilisateur avec lequel ils sont connectés, et afficheront tous les fichiers/répertoires comme inaccessibles (même si ensuite essayer d'y accéder fonctionne).
modifier : sur le serveur, il y a un utilisateur "réel". www-data
avec l'UID 33 et le groupe www-data avec le GID 33, ProFTPd s'exécute avec cet UID/GID, les utilisateurs virtuels dans le groupe www-data et le GID 33. /etc/proftpd/ftpd.[passwd|group]
tous ont uid=gid=33, tous les fichiers dans les répertoires des utilisateurs ont uid=gid=33. Actuellement, les clients ftp listent tous les fichiers comme uid 33 et gid 33 et ne parviennent pas à convertir les ID numériques en noms d'utilisateur / de groupe. Je ne veux pas montrer les fichiers comme appartenant à www-data
dans les clients ftp, mais appartenant au nom d'utilisateur qu'ils ont utilisé pour s'authentifier. C'est également ce que le mod_ls
ferait avec DirFake*
si j'ai bien compris : envoyer un faux utilisateur/groupe aux clients connectés. Ce n'est pas ce qu'il fait, ou du moins ce qu'il fait uniquement pour les ID numériques.
Comment puis-je laisser ProFTPd montrer le nom d'utilisateur virtuel dans les listings aux clients ?