ubuntu下安裝vsftpd的坑

在安裝vsftpd的時候,服務正常啟動成功后,無法用xftp新建的用戶登錄,root也無法登錄的情況:
要修改4個配置文件
第一個是/etc/ftpusers ,儲存禁止用ftp登錄,把你想要添加可登錄的用戶注釋掉,我這里只需要root能登錄。


ftpuser.png

第二個是/etc/allowed_user ,這個文件原先沒有,是我手動創建的,如果有此文件就直接修改,添加的是允許用ftp登錄,allowed_user文件里如果用戶也有,但是ftpusers文件里也有,會以ftpusers優先,則此文件里用戶不生效。


ftpusers.png

第三個是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.png

修改完以上配置后,重啟vsftpd服務

vsftpd命令:
systemctl restart vsftpd 重啟
systemctl stop vsftpd 停止
systemctl start vsftpd 啟動
systemctl status vsftpd 查看狀態

測試服務:
可視化工具可使用xftp測試,好處是方便,傻瓜式操作,界面及配置如下:


xftp.png

命令行測試,好處是如遇到登錄失敗,可看具體報錯信息:

shell.png

輸入密碼后出現230 Login successful 則表示登錄成功,如果登錄出現其他編碼,則有可能是用戶配置原因,仔細檢查以上四個文件。

PS:具體問題還得具體分析,以上并不代表所有問題都可這樣解決,歡迎指正。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容