Как описано в документации опция CreateHomeDir разрешает автоматически при первом входе на ftp создавать домашние каталоги для виртуальных пользователей pure-ftp при каждом входе (если каталог не существует).
После установки в конфиге /etc/pure-ftpd/pure-ftpd.conf опций
VerboseLog yes CreateHomeDir yes
я ожидал что домашние каталоги пользователей будут создаваться. Однако они не создавались ни при добавлении виртуального пользователя ни при логине пользователя. А в логе /var/log/messages появляются такие вот скупые записи:
May 28 18:12:09 b01 pure-ftpd: (?@127.0.0.1) [INFO] New connection from 127.0.0.1 May 28 18:12:09 b01 pure-ftpd: (?@127.0.0.1) [ERROR] Home directory not available - aborting
Как оказалось чтобы исправить это необходимо чтобы владельцем последнего каталога где создаются подкаталоги пользователей был root .
Выявлено на pure-ftpd-1.0.30-1.el6.x86_64 на Scientific Linux release 6.1 (Carbon)
При включённом SELinux нужно разрешить переменные
ftp_home_dir и allow_ftpd_full_access
# getsebool -a | grep ftp allow_ftpd_anon_write --> off allow_ftpd_full_access --> off allow_ftpd_use_cifs --> off allow_ftpd_use_nfs --> off ftp_home_dir --> off ftpd_connect_db --> off ftpd_use_fusefs --> off ftpd_use_passive_mode --> off httpd_enable_ftp_server --> off tftp_anon_write --> off tftp_use_cifs --> off tftp_use_nfs --> off # setsebool ftp_home_dir on # setsebool allow_ftpd_full_access on