Назад | Перейти на главную страницу

Proftpd другой chroot для конкретной группы ldap

Я аутентифицирую ProFTPD (с mod_sftp) с сервером LDAP. Я хочу иметь следующую настройку:

Chroot для всех пользователей /home/ftp. (Это работает).

Теперь я хотел бы chroot определенные группы LDAP в другую папку в /home/ftp. Например, пользователи из группы LDAP "external" должны видеть только /home/ftp/external и пользователи, не входящие в эту группу, должны видеть /home/ftp.

Все загруженные файлы должны принадлежать одному пользователю Linux.

Мой ldap.conf является

<IfModule mod_ldap.c>
LDAPServer ldap://localhost:389/??sub

LDAPDefaultUID 2004
LDAPDefaultGID 2004
LDAPForceDefaultGID on
LDAPForceDefaultUID on

LDAPGenerateHomedir on
LDAPGenerateHomedirPrefix /home/ftp
LDAPGenerateHomedirPrefixNoUsername on

CreateHome off

LDAPBindDN "cn=admin,dc=example,dc=com" password
LDAPUsers ou=Users,DC=example,DC=com (uid=%u)
</IfModule>

и в моем proftpd.conf Я использую:

DefaultRoot         /home/ftp

На самом деле я понятия не имею, как действовать здесь или как это структурировать ... Я могу немного изменить настройку и, возможно, создать небольшое количество пользователей Linux или группу Linux, но я скорее не могу чтобы изменить сервер LDAP (это Active Directory, к которому у меня нет доступа), поэтому желательно, чтобы все было настраиваемым в ProFTPD.

Бонусом было бы, если бы структуру каталогов можно было настроить в AD (может быть, с домашним каталогом?), Чтобы мне не пришлось менять конфигурацию ProFTPD для каждой «специальной» группы.

Любой совет будет очень признателен :)

Спасибо!

ProFTPD's DefaultRoot директива может принимать необязательный групповое выражение, который говорит, следует ли применять DefaultRoot этому пользователю (в зависимости от его членства в группе) или нет.

Например, вы можете использовать:

DefaultRoot /home/ftp/external external
DefaultRoot /home/ftp

Первый DefaultRoot говорит пользователям chroot /home/ftp/external если они являются членами группы «внешняя». В противном случае ничего не делайте. Второй / финал DefaultRoot это правило «поймать всех», позволяющее исключить всех пользователей /home/ftp. Первое совпадение DefaultRoot найденная директива в порядке, определенном в файле конфигурации, выигрывает.

Обратите внимание, что членство в группах ваших пользователей также предоставляется mod_ldap, вам также может потребоваться LDAPGroups в вашей конфигурации.

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