默認安裝VSFTP的命令 service vsftpd start 啟動 service vsftpd stop 關閉 service vsftpd restart 重啟 |
1.生成虛擬用戶口令庫文件。為了建立此口令庫文件,先要生成一個文本文件。該文件的格式如下,單數行為用戶名,偶數行為口令:
#vi /etc/vsftpd/account.txt
內容:
www_6acm_com 123456 6acm_com 654321 |
2.生成口令庫文件,并修改其權限:
#db_load -T -t hash -f /etc/vsftpd/account.txt /etc/vsftpd/account.db #chmod 600 /etc/vsftpd/account.db |
3.新建一個虛擬用戶的PAM文件。加上如下兩行內容:
#vi /etc/pam.d/vsftp.vu
--------------------------------------------------------------------
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/account account required /lib/security/pam_userdb.so db=/etc/vsftpd/account |
4.建立虛擬用戶,設置該用戶所要訪問的目錄,并設置虛擬用戶訪問的權限:
#useradd -d /var/www/ -s /sbin/nologin virtual_user |
經過該步驟的設置,/ftp就是virtual_user用戶的主目錄,該用戶也是/ftp目錄的擁有者。除root用戶之外,只有該用戶具有對該目錄的讀、寫和執行的權限。
5.編輯/etc/vsftpd/vsftpd.conf文件,使其整個文件內容如下所示(去掉了注釋內容):
6.2參考 (實例 vsftpd.conf)
pasv_enable=YES pasv_min_port=40000 //PASV連接模式時可以使用port范圍的下界,0表示任意。 pasv_max_port=40006 //PASV連接模式時可以使用port范圍的上界,0表示任意。 pasv_promiscuous=YES anonymous_enable=NO local_enable=YES local_umask=022 xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES listen=YES write_enable=YES anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES one_process_model=NO chroot_local_user=YES ftpd_banner=Welcom to my FTP server. anon_world_readable_only=NO guest_enable=YES guest_username=virtual_user pam_service_name=vsftp.vu user_config_dir=/etc/vsftpd/vconf |
6 /etc/vsftpd/vconf下建立對應用戶名文件 (實例 www_6acm_com)
如:/etc/vsftpd/vconf/www_6acm_com
local_root=/var/www/www_6acm_com anonymous_enable=NO 是否允許匿名用戶登錄 anon_world_readable_only=YES/NO 匿名用戶可以讀文件/不能 write_enable=YES 是否允許本地用戶上傳 local_umask=022 默認權限設置 anon_upload_enable=YES 允許上傳 anon_mkdir_write_enable=YES //匿名用戶可以建立目錄 anon_other_write_enable=YES //匿名用戶可以重名名、刪除等權限 idle_session_timeout=300 //空閑連接超時時間 data_connection_timeout=90 //數據傳輸超時時間 max_clients=100 //可接受的最大連接數 max_per_ip=100 //每個IP地址的最大連接數 local_max_rate=5000000 //本地用戶的帶寬(b/s) |
6.重新啟動VSFTP:
#service vsftpd restart |
試試看?是否成功了?
其他:上傳不成功
553 Could not create file. 要解決這個問題只要: 1. setsebool -P ftpd_disable_trans 1 2. service vsftpd restart 就可以了。 RedHat的 /etc/sysconfig/selinux # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - SELinux is fully disabled. SELINUX=disabled 把 SELINUX設定為disable, 下次啟動系統后將會停止SElinux。 |