ProFTPd : как показывать виртуальное имя пользователя в списках?

Я использую ProFTPd 1.3.5a (кстати, у меня такое же поведение на более ранней версии 1.3. 4d) с довольно распространенной настройкой виртуальных пользователей для веб-сервера.

Проще говоря, ProFTPd работает с UID / GID apache и имеет свои локальные файлы для аутентификации. Все пользователи имеют одинаковый реальный UID / GID (опять же, apache) и привязаны к своим каталогам с записями DirFake *.

Это отрывок из конфигурации:

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>

Но с каждым ftp-клиентом, который я пробую, при перечислении files я получаю только числовой UID / GID, а не имя виртуального пользователя. Это также раздражает, потому что клиенты, такие как CyberDuck, будут считать, что числовой идентификатор не совпадает с идентификатором пользователя, с которым они связаны, и покажут все файлы / каталоги как недоступные (даже если затем попытка доступа к ним действительно работает).

редактировать : на сервере есть «реальный» пользователь www-data с UID 33 и групповые www-данные с GID 33, ProFTPd работает с этим UID / GID, все виртуальные пользователи в / etc / proftpd / ftpd. [Passwd | group] имеют uid = gid = 33, все файлы в каталогах пользователей имеют uid = gid = 33. Сейчас ftp-клиенты перечисляют все файлы как uid 33 и gid 33 и не могут преобразовать числовые идентификаторы в имена пользователей / групп. Я не хочу показывать файлы как принадлежащие www-data в ftp-клиентах, но принадлежащие имени пользователя, которое они использовали для аутентификации. Это также то, что mod_ls будет делать с параметрами DirFake * , как я понял: бросать поддельного пользователя / группы подключенным клиентам. Он не делает этого или, по крайней мере, делает это только для числовых идентификаторов.

Как я могу позволить ProFTPd отображать имя виртуального пользователя в списках клиентов?

2
задан 3 October 2016 в 16:17
1 ответ

Некоторые FTP-клиенты теперь используют более новые команды MLSD / MLST , а не LIST и NLST для вывода списка файлов; у этих новых команд нет фактов для имен, только идентификаторы. Таким образом, вы можете попробовать добавить FactsAdvertise off в ваш proftpd.conf , который сообщает ProFTPD не объявлять , что он может обрабатывать эти новые команды FTP. Это, в свою очередь, должно привести к тому, что FTP-клиенты вернутся к более старым командам FTP, которые предоставляют имена.

Обновление : Я запросил два новых специфичных для ОС факта, UNIX. имя владельца и UNIX.groupname , должны быть зарегистрированы в IANA для использования в списках MLSD , чтобы иметь возможность предоставлять имена пользователей / групп в списках с помощью этой команды. Я скоро добавлю их поддержку в ProFTPD .

Надеюсь, это поможет!

2
ответ дан 3 December 2019 в 11:31

Теги

Похожие вопросы