對于用DB庫存儲使用者名及密碼的方式來說:
(1)檢視系統是否有相應軟體包
# rpm –qa | grep db4
db4-devel-4.2.52-7.1
db4-4.2.52-7.1
db4-utils-4.2.52-7.1
(2)建立一個logins.txt的檔案,單行為使用者名,雙行為密碼,例如
# vi /etc/vsftpd/logins.txt
guest
12345
(3)建立資料庫檔案并設定檔案屬性
# db_load -T -t hash -f /etc/vsftpd/logins.txt /etc/vsftpd/vsftpd_login.db
# chmod 600 /etc/vsftpd/vsftpd_login.db
(4)建立認證檔案
# vi /etc/pam.d/vsftp 插入如下兩行
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
(5)建立虛拟使用者,設定該使用者所要通路的目錄,并設定虛拟使用者通路的權限:
#useradd -d /home/ftpsite virtual_user
#chmod 700 /home/ftpsite
經過該步驟的設定,/home/ftpsite就是virtual_user使用者的主目錄,該使用者也是ftpsite目錄的擁有者。除root使用者之外,隻有該使用者具有對該目錄的讀、寫和執行的權限。
(6).編輯/etc/vsftpd/vsftpd.conf檔案,使其整個檔案内容如下所示(去掉了注釋内容):
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
上面代碼中,guest_enable=YES表示啟用虛拟使用者;guest_username=virtual則是将虛拟使用者映射為本地使用者,這樣虛拟 使用者登入後才能進入本地使用者virtual的目錄/ftpsite;pam_service_name=vsftp指定PAM的配置檔案為 vsftp。
(7).重新啟動VSFTP:
#service vsftpd restart
(8).以虛拟使用者guest(Linux中并無該賬号)進行測試:
# ftp 127.0.0.1
Connected to 127.0.0.1 (127.0.0.1).
220 Welcom to my FTP server.
Name (127.0.0.1:root): guest
331 Please specify the password.
Password:
230 Login successful. Have fun.
Remote system type is UNIX.
Using binary mode to transfer files.
在虛拟FTP伺服器中,也可以對各個使用者的權限進行設定。方法是在/etc/vsftpd.conf檔案中添加如下一行:
user_config_dir=使用者配置檔案目錄
然後在使用者配置檔案目錄下建立相應的使用者配置檔案,比如為上述名為gou的使用者建立一個配置檔案(假設配置檔案目錄為/etc/vsftpd_user_conf):
#vi /etc/vsftpd_user_conf/guest
write_enable=NO
anono_upload_enable=NO
列子:
#cmds_allowed=ABOR,CWD,LIST,MDTM,MKD,NLST,PASS,PASV,PORT,PWD,QUIT,RETR,RNFR,RNTO,SIZE,STOR,TYPE,USER,REST,CDUP,HELP,MODE,NOOP,REIN,STAT,STOU,STRU,SYST,FEAT
file_open_mode=0444
#local_root=/home/ftpuser/$USER
local_root=/home/ftpsite
#write_enable=YES
(9).虛拟使用者個人目錄設定
大家可以發現,無論是哪個虛拟使用者,登入後所在的目錄都是/home/ftpsite,即都是guest使用者的自家目錄。下面,介紹如何為每個虛拟使用者建立自家目錄。
一種作法是在虛拟使用者的個人配置檔案中使用local_root選項指定虛拟使用者的自家目錄。以gou為例,在第上步的基礎上,首先/etc/vsftpd_user_conf/gust檔案中加入:
local_root=/home/ftpsite/guest
/home/ftpsite下建立gou目錄,并将權限設為virtual_user:
(10).添加FTP使用者的步驟
1.在logins.txt中添加使用者名和密碼
2.運作如下指令,将使用者名和密碼添加到資料庫中
db_load -T -t hash -f /etc/vsftpd/logins.txt /etc/vsftpd/vsftpd_login.db