Я пытаюсь настроить несколько экземпляров vsftpd на машине, к которой у меня нет корневого доступа. Аутентификация должна выполняться через PAM с помощью pam_listfile, например:
pam_listfile.so item=group sense=allow file=/path/filename onerr=fail
Я могу попросить администратора настроить для меня службу PAM и включить эту строку, но он не желает создавать 6 служб PAM для моих 6 экземпляров vsftpd, и мне действительно нужен другой / путь / имя файла для каждого сервера vsftpd.
Есть ли способ решить эту проблему? Можно как-то не использовать в качестве параметра абсолютный путь?
(Я знаю, что правильным решением было бы использовать один экземпляр vsftpd и правильно настроить виртуальных пользователей. Однако, к сожалению, мне приходится работать с тем, что у меня есть, а пользователи уже существуют в Active Directory и аутентифицируются в системе с помощью другой службы PAM.)
Может ли вообще помочь указание группы в файле PAM вместо использования файла? Таким образом, вам может не понадобиться некоторое количество плоских файлов. (В зависимости от ваших намерений.)
К сожалению, ответ заключается в том, что с vsftpd это невозможно.
Лучшим ответом может быть переход с vsftpd на proftpd, который может поддерживать потребности виртуальных пользователей без интеграции PAM. В ваш /etc/proftpd.conf вы должны включить такие строки, как:
AuthPAMAuthoritative off
AuthPam off
AuthUserFile /opt/etc/passwd.ftp
AuthGroupFile /opt/etc/group.ftp
Файл group.ftp - это просто стандартная настройка группы для ftp и nobody, и ваш файл passwd назначит user: group одинаково для всех записей. Вы просто указываете имена пользователей, пароли и каталоги для входа (используйте / sbin / nologin для оболочки). Настройка займет всего 5 минут, если ваш администратор подготовит для вас основу и позволит вам владеть / редактировать файл паролей.