在安裝vsftpd的時候,服務正常啟動成功后,無法用xftp新建的用戶登錄,root也無法登錄的情況:
要修改4個配置文件
第一個是/etc/ftpusers ,儲存禁止用ftp登錄,把你想要添加可登錄的用戶注釋掉,我這里只需要root能登錄。
第二個是/etc/allowed_user ,這個文件原先沒有,是我手動創建的,如果有此文件就直接修改,添加的是允許用ftp登錄,allowed_user文件里如果用戶也有,但是ftpusers文件里也有,會以ftpusers優先,則此文件里用戶不生效。
第三個是ftp服務器的配置文件,在/etc/vsftpd.conf,這里需要注意,如果listen參數已開,一定不要再開listen_ipv6=YES(重要的事情說三遍,一定不要開!一定不要開!一定不要開!),實在沒頭緒的可以拷貝我的配置。
vsftpd.conf
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
dirmessage_enable=YES
use_localtime=YES
allow_writeable_chroot=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
chroot_local_user=YES
xferlog_std_format=YES
userlist_deny=NO
userlist_enable=YES
userlist_file=/etc/allowed_users
seccomp_sandbox=NO
local_root=/opt/ftp
utf8_filesystem=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
tcp_wrappers=YES
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO
第四個是 /etc/pam.d/vsftpd ,因為配置中開了pam_service_name=vsftpd,所以我們要找到pam.d的位置,做一些修改,默認在/etc下。
圖中畫框的地方,是我做的修改,原先是auth required pam_shells.so ,這里需要修改成pam_nologin.so
修改完以上配置后,重啟vsftpd服務
vsftpd命令:
systemctl restart vsftpd 重啟
systemctl stop vsftpd 停止
systemctl start vsftpd 啟動
systemctl status vsftpd 查看狀態
測試服務:
可視化工具可使用xftp測試,好處是方便,傻瓜式操作,界面及配置如下:
命令行測試,好處是如遇到登錄失敗,可看具體報錯信息:
輸入密碼后出現230 Login successful 則表示登錄成功,如果登錄出現其他編碼,則有可能是用戶配置原因,仔細檢查以上四個文件。
PS:具體問題還得具體分析,以上并不代表所有問題都可這樣解決,歡迎指正。