1、建立虛擬用戶口令庫文件
口令庫文件中奇數行設置用戶名,偶數行設置口令
# vi /etc/vsftpd/ftpuser.txt
ftpaaa
123456
ftpbbb
123456
2、生成vsftpd的認證文件
安裝名叫“db4-utils-...”的包
# db_load -T -t hash -f /etc/vsftpd/logins.txt /etc/vsftpd/ftplogin.db
注:如果沒有db_load命令,請安裝db4-utils-*相關rpm包。
設置認證文件只對用戶可讀可寫
# chmod 600 /etc/vsftpd/ftplogin.db
3、建立虛擬用戶所需的PAM配置文件
# vi /etc/pam.d/vsftpd.vu
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/ftplogin
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/ftplogin
注意:以上2行中最後的2個文件名ftplogin和第2個步驟中的數據庫名字必須一致!
以上是64位系統使用
32位系統如下:
vi /etc/pam.d/vsftpd.vu
auth sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/ftplogin
account sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/ftplogin
4、建立虛擬用戶所要訪問的目錄並設置相應權限
# useradd -d /home/ftpsite virtual(用戶名,可以改爲其他名)
# chmod 700 /home/ftpsite/
經過該步驟的設置,/home/ftpsite就是virtual用戶的主目錄,該用戶也是ftpsite目錄的擁有者。除root用戶之外,只有該用戶具有對該目錄的讀、寫和執行的權限。
5、設置vsftpd.conf配置文件
guest_enable=YES 默認配置沒有這行
guest_username=virtual 默認配置沒有這行
pam_service_name=vsftpd.vu 默認是vsftpd
virtual_use_local_privs=YES 設定虛擬用戶的權限符合他們的宿主用戶
chroot_local_user=YES 禁止本地用戶登出自己的FTP主目錄
其他默認配置根據自己的需求來修改
6、設置主配置文件
在vsftpd.conf文件中添加用戶配置文件目錄設置
user_config_dir=/etc/vsftpd_user_conf
增加上行的作用是:對各個用戶的權限進行設置,然後在用戶配置文件目錄下創建相應的用戶配置文件,比如爲上述名爲ftpaaa的用戶創建一個配置文件
#vi /etc/vsftpd_user_conf/ftpaaa
anon_world_readable_only=NO 可讀可下載
anon_upload_enable=YES 可上傳
anon_mkdir_write_enable=YES 可創建和刪除文件夾
anon_other_write_enable=YES 可文件改名和刪除文件
local_root=/home/ftpsite/ftpaaa 指定ftpaaa的宿主目錄(所有用戶默認都是登錄到/home/ftpsite,指定後則登錄到指定的目錄中)
同樣爲ftpbbb用戶創建一個配置文件
vi /etc/vsftpd_user_conf/ftpaaa
注意:用戶配置文件名稱與用戶名相同
7、創建用戶的指定登錄目錄(如果沒有配置local_root,則不用創建,因爲默認登錄到/home/ftpsite)
mkdir /home/ftpsite/ftpaaa
chown virtual:virtual /home/ftpsite/ftpaaa
chmod 700 /home/ftpsite/ftpaaa
8、啓到vsftpd服務
service vsftpd start