У меня есть сервер VSFTPD на базе CentOS 6, настроенный для аутентификации виртуальных пользователей на сервере openLDAP. Я могу войти на FTP-сервер, однако аутентифицированные пользователи перенаправляются не в свой домашний каталог, а в домашний каталог VSFTPD!
Обратите внимание, что домашний каталог каждого пользователя находится в псевдослучайном месте, поэтому я не могу использовать такой атрибут, как
user_config_dir=$USER
Однако в LDAP атрибут homeDirectory содержит полный путь домашнего каталога пользователя. Пример:
uid:usertest@example.com
homeDirectory: /nfs/{RANDOM_storage_location}/{RANDOM_NUMBER}/{DOMAIN}u/s/e/usertest
Как я могу настроить vsftpd для использования домашнего каталога каждого пользователя?
Файлы конфигурации:
##Filename: pam_ldap.conf
base dc=example,dc=com
uri ldap://192.168.1.8:389
binddn cn=ftp,ou=read,ou=groups,dc=example,dc=com
bindpw secret
bind_timelimit 300
idle_timelimit 300
timelimit 300
Конфигурация VSFTPD:
Anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
# Enable Virtual users
guest_enable=YES
virtual_use_local_privs=YES
chroot_local_user=YES
chroot_list_enable=NO
xferlog_enable=YES
log_ftp_protocol=YES
connect_from_port_20=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
hide_ids=YES
Пример подключения:
ftp
ftp> o 192.168.1.10
Connected to 192.168.1.10.
220-
220
Name (192.168.1.10:user): usertest@example.com
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
ftp> dir
Using binary mode to transfer files.
229 Entering Extended Passive Mode (|||21725|).
150 Here comes the directory listing.
drwxr-xr-x 2 ftp ftp 4096 Feb 21 09:01 pub
226 Directory send OK.