Можно ли определить собственный базовый путь для домашних каталогов proftpd?
Я знаю DefaultRoot ~
настройка, которую вы можете использовать для заключения пользователей в их домашние каталоги, но мне нужно настроить это.
При аутентификации с помощью proftpd я получаю домашний каталог пользователя от ldap
с помощью auth-pam
, Я не имею никакого контроля над тем, каким будет путь к домашней директории, но мне нужно, чтобы они были на моем glusterfs
который является предохранителем у меня в /mnt/glusterfs
,
То, что я хотел бы иметь, - то, что, если я получу дом пользователя как /some/directory
что proftpd посадит их в тюрьму /mnt/glusterfs/some/directory
В общем, я хотел бы иметь что-то вроде DefaultRoot /base/path/~
Если вы, ребята (и / или девочки), можете придумать какое-либо решение, будь то модификация кода или любое другое творческое решение, я был бы рад его услышать.
заранее спасибо
2 ответа
Если обычные домашние каталоги ваших пользователей содержат имя пользователя, например "/home/foo" для пользователя "foo", то вы можете использовать что-то вроде этого:
DefaultRoot /mnt/glusterfs/home/%u
Тот %u
переменная будет преобразована в аутентифицированное имя пользователя.
Другой, более сложный подход заключается в использовании mod_rewrite
модуль и RewriteHome
директива; RewriteHome
Директивная документация содержит пример того, как может выглядеть ваше регулярное выражение / замена. И RewriteHome
функциональность применяется независимо от источника домашнего каталога, будь то LDAP, системных функций и т.
Надеюсь это поможет!
Вы можете использовать следующие директивы, чтобы создать базовый путь для всех пользователей ftp. Это ограничит пользователей только этим путем
LDAPGenerateHomedir on
LDAPForceGeneratedHomedir on
LDAPGenerateHomedirPrefix /mnt/glusterfs/some/directory/