Можно ли определить собственный базовый путь для домашних каталогов 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/
Другие вопросы по тегам