1、yum安裝vsftpd程序:
[root@NcBank01 other]# yum install vsftpd -y
2、修改配置文件
[root@NcBank01 other]# vi /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
//是否允許anonymous登錄FTP服務器,默認是允許的。
local_enable=YES
//是否允許本地用戶登錄FTP服務器,默認是允許
write_enable=YES
//是否允許用戶具有在FTP服務器文件中執行寫的權限,默認是允許
anon_umask=022
//設置虛擬用戶的文件生成掩碼爲022,默認是077
dirmessage_enable=YES
//激活目錄信息,當遠程用戶更改目錄時,將出現提示信息
xferlog_enable=YES
//啓用上傳和下載日誌功能
connect_from_port_20=YES
//啓用FTP數據端口的連接請求
xferlog_file=/var/log/vsftpd.log
//設置日誌文件的文件名和存儲路徑,這是默認的
xferlog_std_format=YES
//是否使用標準的ftpd xferlog日誌文件格式
listen=YES
//使vsftpd 處於獨立啓動模式
user_config_dir=/etc/vsftpd/vuser_dir
//使用虛擬用戶配置文件的目錄
pam_service_name=/etc/pam.d/vsftpd
//設置PAM認證服務的配置文件名稱,該文件存放在/etc/pam.d/目錄下.
userlist_enable=NO
//用戶列表中的用戶是否允許登錄FTP服務器,默認是不允許
chroot_list_enable=YES
//如果希望用戶登錄後不能切換到自己目錄以外的其它目錄,需要設置該項
tcp_wrappers=YES
//使用tcp_wrqppers作爲主機訪問控制方式
guest_enable=YES
//是否啓用來賓用戶(也就是啓用虛擬用戶)
guest_username=root
//如果啓用了虛擬用戶後上傳文件修改文件的用戶名
chown_uploads=YES
//是否啓用上傳文件後修改爲指定的屬主
chown_username=root
//是否啓用上傳文件後修改爲指定的屬主用戶
3、在/etc/vsftpd/下創建兩個目錄
vuser_db #後續存放虛擬用戶的配置文件
vuser_dir #存放虛擬用戶的認證文件
//以下是login_vuser虛擬用戶的帳號密碼格式,奇數行爲用戶名,雙數行爲密碼
user003
20150105
user004
20150106
user005
20150107
//生成數據庫文件
//選項-T允許應用程序能夠將文本文件轉譯載入進數據庫。由於我們之後是將虛擬用戶的信息以文件方式存儲在文件裏的,爲了讓Vsftpd這個應用程序能夠通過文本來載入用戶數據,必須要使用這個選項。
如果指定了選項-T,那麼一定要追跟子選項-t
子選項-t,追加在在-T選項後,用來指定轉譯載入的數據庫類型。擴展介紹下,-t可以指定的數據類型有Btree、Hash、Queue和Recon數據庫。
-f:參數後面接包含用戶名和密碼的文本文件,文件的內容是:奇數行用戶名、偶數行密碼
[root@master vuser_db]# db_load -T -t hash -f /etc/vsftpd/vuser_db/login_vuser /etc/vsftpd/vuser_db/vuser.db
4、更改pam認證模塊
[root@master vuser_db]# cd /etc/pam.d/
[root@master vuser_db]# vim vsftpd //這個文件名要與主配置文件中的pam_service_name指定的一致
//最後面的vuser就是vuser.db,但是這裏的後綴不是需要寫的
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_db/vuser
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_db/vuser
5、爲虛擬用戶創建對應的文件vi
[root@master vsftpd]# cd /etc/vsftpd/vuser_dir/
[root@master vuser_dir]# ll //login_vuser中有多少個帳號就創建多少個虛擬用戶文件
total 6
-rw-r--r--. 1 root root 177 Jan 5 17:03 user003
-rw-r--r--. 1 root root 177 Jan 5 17:09 user004
-rw-r--r--. 1 root root 177 Jan 5 17:19 user005
[root@master vuser_dir]# vim user003
anon_world_readable_only=NO
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/data/www/test //指定虛擬用戶有權限登錄到哪個目錄
chown_upload_mode=0777 //虛擬用戶上傳文件的權限設置
到這裏基本上算是配置完成了,可以啓動vsftpd服務了:
root@master vsftpd]# service vsftpd start
6添加新的虛擬用戶
[root@NcBank01 vsftpd]# vi adduser.txt
賬號
密碼
db_load -T -t hash -f adduser.txt addftpuser.bdb
db_dump addftpuser.bdb > addftpuser.txt
db_dump vuser.db > vuser.db.txt
然後打開Mobileusers.txt 和 addftpuser.txt
格式類似:
VERSION=3 #版本
format=bytevalue #本文格式
type=hash #加密方式
h_nelem=2 #文件內含用戶的數量
db_pagesize=4096
HEADER=END #頭屬性結束
6674707573657231 #第一個用戶的用戶名
313233343536 #第一個用戶的密碼
6674707573657232 #第二個用戶的用戶名
313233343536 #第二個用戶的密碼
DATA=END #數據屬性結束
將addftpuser.txt中的內容相應的加入到Mobileusers.txt 中並且修改文件內用戶的數量
之後在使用db_load回覆pam的配置文件。
(執行操作之前一定要做備份)
db_load -f vuser.db.txt vuser.db
[root@NcBank01 vsftpd]# ll /etc/vsftpd/vuser_dir/
total 8
-rw-r--r-- 1 root root 173 May 6 11:26 user003
-rw-r--r-- 1 root root 173 May 23 11:19 user004
創建虛擬文件給與權限
重啓vsftp即可