В моем CentOS, где CPanel установлен в proftpd.conf, я вижу директиву
AuthUserFile /etc/proftpd/passwd.vhosts
Я хотел добавить еще один AuthUserFile
директива, поэтому Profptd использует еще один файл для поиска пользователей рядом с /etc/proftpd/passwd.vhosts
поэтому я добавил еще одну строку ниже AuthUserFile
AuthUserFile /home/public_html/cgi-bin/ftp/ftp.users
но похоже, что он не использует мою новую директиву AuthUserFile
Может ли кто-нибудь помочь мне, как заставить Proftpd искать в другом файле для пользователей, кроме этого /etc/proftpd/passwd.vhosts
Как вы предложили, я добавил это в proftpd.conf и запустил демон Proftpd в режиме отладки, но он по-прежнему не использует этот файл.
<VirtualHost www8.example.com>
ServerName "www8.example.com's FTP Server"
MaxClients 40
MaxLoginAttempts 3
DeferWelcome on
AuthUserFile /home/xxx/public_html/cgi-bin/ftp/ftp.users
</VirtualHost>
вот журнал отладки:
- dispatching CMD command 'AUTH TLS' to mod_tls
- dispatching LOG_CMD command 'AUTH TLS' to mod_log
- dispatching PRE_CMD command 'USER testuser' to mod_tls
- dispatching PRE_CMD command 'USER testuser' to mod_core
- dispatching PRE_CMD command 'USER testuser' to mod_delay
- dispatching PRE_CMD command 'USER testuser' to mod_auth
- dispatching CMD command 'USER testuser' to mod_auth
- dispatching POST_CMD command 'USER testuser' to mod_delay
- dispatching LOG_CMD command 'USER testuser' to mod_log
- dispatching PRE_CMD command 'PASS (hidden)' to mod_tls
- dispatching PRE_CMD command 'PASS (hidden)' to mod_core
- dispatching PRE_CMD command 'PASS (hidden)' to mod_wrap
- dispatching PRE_CMD command 'PASS (hidden)' to mod_delay
- dispatching PRE_CMD command 'PASS (hidden)' to mod_auth
- dispatching CMD command 'PASS (hidden)' to mod_auth
- mod_auth_file/0.9: using passwd file '/etc/proftpd/passwd.vhosts'
- USER testuser: no such user found from 117.x.x.x
Согласно документация у вас может быть несколько AuthUserFile
-directives, если они у вас есть в разных VirtualHosts. Мне не кажется, что то, что вы делаете, поддерживается.
Есть и другие способы добиться того, чего вы пытаетесь:
AuthUserFile
. Это настраивается AuthOrder
Вы также можете изучить использование VirtualHosts, но вы должны знать о как они работают:
К сожалению, определение протокола передачи файлов (в настоящее время) не поддерживает виртуальные хосты на основе имен, как поддерживает HTTP1.1. Все виртуальные хосты FTP основаны на уникальных комбинациях IP-адресов и портов, а не на именах DNS. Сходство синтаксиса файла конфигурации ProFTPD с синтаксисом Apache иногда заставляет пользователей предполагать, что proftpd будет обрабатывать их таким же образом - но об этом позже. Суть в том, что ProFTPD не поддерживает виртуальные хосты на основе имен; не потому, что они не реализованы, а просто потому, что сам протокол их не поддерживает.