1

Я знаю настройку DefaultRoot ~ которую вы можете использовать для помещения пользователей в их домашние каталоги, но мне нужно настроить это.

При аутентификации с помощью proftpd я получаю домашний каталог пользователя из ldap через auth-pam . Я не имею никакого контроля над тем, каким будет путь к домашнему каталогу, но мне нужно, чтобы они были в моем glusterfs который есть в моем каталоге /mnt/glusterfs .

Я хотел бы иметь следующее: если я получу дом пользователя в /some/directory то proftpd поместит его в /mnt/glusterfs/some/directory

В общем, я хотел бы иметь что-то вроде DefaultRoot /base/path/~

Если вы, ребята (и / или девочки), можете придумать какое-либо решение, будь то модификация кода или любое другое творческое решение, я был бы рад его услышать.

заранее спасибо

2 ответа2

0

Вы можете использовать следующие директивы, чтобы создать базовый путь для всех пользователей ftp. Это ограничит пользователей только этим путем

LDAPGenerateHomedir on
LDAPForceGeneratedHomedir on
LDAPGenerateHomedirPrefix /mnt/glusterfs/some/directory/
0

Если обычные домашние каталоги ваших пользователей содержат имя пользователя, например, "/home/foo" для пользователя "foo", то вы можете использовать что-то вроде этого:

DefaultRoot /mnt/glusterfs/home/%u

Эта переменная %u будет преобразована в аутентифицированное имя пользователя.

Другой, более сложный подход заключается в использовании модуля mod_rewrite и директивы RewriteHome ; документация директивы RewriteHome содержит пример того, как может выглядеть ваше регулярное выражение / замена. А функциональность RewriteHome применяется независимо от источника домашнего каталога, будь то LDAP, системные функции и т. Д.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .