W Google wiele podobnych pytań ale bez odpowiedzi, a na ircu projektu cisza.
Zainstalowałem sobie z nudów na localhoście serwer ftp na vsftpd właśnie, uruchomiłem, lokalni użytkownicy mogli się logować, więc poszedłem sobie dalej i zrobiłem użytkowników wirtualnych zapisanych w MySqlu. Wszystko działa. Tylko pojawia się taki problem, że działa albo jedno albo drugie, razem nie chce zaskoczyć za nic. Oczywiście na początku rozbiło się o konfigurację PAM-a, bo albo wpisze się tam połączenie z MySql albo użytkowników lokalnych. Więc dodałem do głównego pliku konfiguracyjnego vsftpd:
Kod: Zaznacz cały
user_config_dir=/etc/vsftp_user_conf/
Kod: Zaznacz cały
pam_service_name=vsftpd
Kod: Zaznacz cały
pam_service_name=vsftpd_virtualusers
Ale nie działa, wygląda to tak, jakby vsftpd całkowicie ignorował pozycję
Kod: Zaznacz cały
pam_service_name
Trochę zagmatwałem, ale może ktoś zaznajomiony bardziej z tematem coś podpowie. A może przy takiej konfiguracji lepiej sobie dać z vsftpd spokój? Chociaż dziwne by to było, w końcu serwer popularny stosowany z tego co widziałem na szeroką skalę.
No i tutaj są te moje konfigi.
/etc/vsftpd.conf:
Kod: Zaznacz cały
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
chroot_local_user=YES
user_config_dir=/etc/vsftp_user_conf/
#
#local_root=/home/vsftpd/$USER
#user_sub_token=$USER
#virtual_use_local_privs=YES
#guest_enable=YES
#guest_username=vsftpd
#
#
secure_chroot_dir=/var/run/vsftpd/empty
#
pam_service_name=vsftpd
#
rsa_cert_file=/etc/ssl/private/vsftpd.pem
Kod: Zaznacz cały
local_root=/home/vsftpd/$USER
user_sub_token=$USER
virtual_use_local_privs=YES
guest_enable=YES
guest_username=vsftpd
pam_service_name=vsftpd_virtualusers
Kod: Zaznacz cały
# Standard behaviour for ftpd(8).
auth required pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
# Note: vsftpd handles anonymous logins on its own. Do not enable pam_ftp.so.
# Standard pam includes
@include common-account
@include common-session
@include common-auth
auth required pam_shells.so
Kod: Zaznacz cały
auth required pam_mysql.so user=vsftpd passwd=ftpdpass host=localhost db=vsftpd table=tb_users usercolumn=login passwdcolumn=password crypt=2
account required pam_mysql.so user=vsftpd passwd=ftpdpass host=localhost db=vsftpd table=tb_users usercolumn=login passwdcolumn=password crypt=2