環境centos6.6
權限分別是:vuser1 能下載不能上傳,vuser2 能上傳不能下載,vuser3 既能上傳也能下載。
vuser1
123456
vuser2
123123
vuser3
123456
//把新建的文本文件 virtualuser.txt 轉換爲 db 文件,安裝 db4-utils 包
[root@server vsftpd]#yum install -y db4-utils
[root@server vsftpd]#db_load -T -t hash -f virtualuser.txt /etc/vsftpd/virtualuser_login.db
//這條命令生成用戶數據庫
//設置認證文件只對用戶可讀可寫
[root@server pam.d]# cd /etc/pam.d
//爲了使服務器能夠使用數據庫文件,對客戶端進行身份驗證,需要調用系統的
PAM 模塊.PAM(Plugable Authentication Module)爲可插拔認證模塊,不必重新安
裝應用系統,通過修改指定的配置文件,調整對該程序的認證方式。 PAM 模塊
配置文件路徑爲/etc/pam.d/目錄,此目錄下保存着大量與認證有關的配置文件,
並以服務名稱命名。
//修改 vsftpd 對應的 PAM 配置文件/etc/pam.d/vsftpd,可將原配置註釋,然後作如下配置
[root@server pam.d]# vim /etc/pam.d/vsftpd (64位系統)
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/virtualuser_login
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/virtualuser_login
auth sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/virtualuser_login
account sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/virtualuser_login
//auth 是指對用戶的用戶名口令進行驗證。
accout 是指對用戶的帳戶有哪些權限哪些限制進行驗證。
/lib/security/pam_userdb.so 表示該條審覈將調用 pam_userdb.so 這個庫函數進行。
最後的 db=/etc/vsftpd/virtualser_login 則指定了驗證庫函數將到這個指
定的數據庫中調用數據進行驗證。
[root@server vsftpd]# useradd virtualuser
//建立虛擬用戶所對應的本地真實用戶(可以創建任意用戶)
//重新修改 vsftpd.conf 配置文件
[root@newsales3 vsftpd]# grep -v ^# /etc/vsftpd/vsftpd.conf
anonymous_enable=NO #禁用匿名用戶登錄
local_enable=YES #啓用本地用戶登錄設置
write_enable=YES #是否可以讀寫
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES #日誌是否啓用
connect_from_port_20=YES
#xferlog_std_format=YES #日誌寫到/var/log/xferlog,日誌不顯示中文,包含的內容更多,但是都是縮寫,不直觀
chroot_list_enable=YES #YES的時候,啓用chroot 列表。
listen=YES
pam_service_name=vsftpd #安全審計模塊名對應/etc/pam.d/vsftpd
userlist_enable=YES
tcp_wrappers=YES
cat vuserconfig/upload
創建對應的家目錄,並重啓服務即可。
建立虛擬帳號配置文件
在 user_config_dir 指定路徑下,建立與虛擬帳號同名的配置文件並添加相應
的配置字段,配置文件名稱一定要和虛擬用戶名相同。默認情況下虛擬用戶的配
置文件會繼承全局配置文件中的語句,如果衝突,虛擬用戶配置文件有效。
write_enable=yes #默認允許在文件系統寫入權限
download_enable=yes #默認允許下載
[root@server ~]#su - virtualuser
[virtualuser@server ~]$ mkdir vuser1 vuser2 vuser3
//創建三個虛擬用戶的根目錄,此時在virtualuser的家目錄中,
[virtualuser @server ~]$ exit
//vuser1 只能上傳權限配置
[root@server vuserconfig]# cat vuser1
local_root=/home/virtualuser/vuser1
write_enable=YES
download_enable=NO
//vuser2 只能下載配置
[root@server vuserconfig]# cat vuser2
local_root=/home/virtualuser/vuser2
write_enable=NO
download_enable=yes
//vuser3 上傳下載等配置
[root@server vuserconfig]# cat vuser3
local_root=/home/virtualuser/vuser3
//然後依次登錄vuser1,2,3 進行測試
[root@server ~]# lftp -u vuser1 192.168.0.254