繼續上章vsftpd,介紹vsftpd的虛擬用戶配置node
1、背景需求
當有多個用戶須要不一樣的權限時,本地用戶、匿名用戶都沒法控制那麼精細,這時候能夠考慮下虛擬用戶了,例若有以下要求。
數據庫
家目錄 | 讀 | 寫 | 刪除 | 是否容許切換目錄 | |
---|---|---|---|---|---|
tom | /myftp/tom | √ | × | × | × |
jerry | /myftp/jerry | √ | √ | × | × |
admin | /myftp | √ | √ | √ | √ |
2、詳細配置vim
``` a. 安裝程序: [root@node1 ~]# yum -y install vsftpd b. 建立配置文件: [root@node1 ~]# cp /etc/vsftpd/vsftpd.conf{,.bak} [root@node1 ~]# vim /etc/vsftpd/vsftpd.conf #關閉匿名用戶,本地用戶必須開啓,不然虛擬用戶沒法正常運行 anonymous_enable=NO local_enable=YES write_enable=YES #設置禁錮用戶,默認開啓後/etc/vsftpd/chroot_list文件中的用戶都被禁錮 chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list #設置虛擬用戶相應功能(虛擬用戶對應的本地用戶、 guest_enable=YES guest_username=virtual pam_service_name=vsftpd.pam user_config_dir=/etc/vsftpd/vuser_conf.d #設置數據鏈接(被動模式)的端口範圍 pasv_min_port=30000 pasv_max_port=30999 #關閉反向域名解析,用於加速訪問 reverse_lookup_enable=NO c.建立pam認證文件,並指定虛擬用戶的帳號、密碼數據庫位置 注意:若是是32位的系統pam_userdb.so模塊不在lib64目錄下,詳情可經過 rpm -ql pam | grep userdb 得知 [root@node1 ~]# vim /etc/pam.d/vsftpd.pam auth required /lib64/security/pam_userdb.so db=/etc/vsftpd_login account required /lib64/security/pam_userdb.so db=/etc/vsftpd_login d.建立用戶密碼數據庫,奇數行位用戶名、偶數行位密碼 [root@node1 ~]# vim /etc/vsftpd_login tom 123 jerry 123 admin 123 [root@node1 ~]# db_load -t hash -T -f /etc/vsftpd_login /etc/vsftpd_login.db e.爲每一個虛擬用戶建立不一樣的權限 [root@node1 ~]# mkdir /etc/vsftpd/vuser_conf.d #TOM用戶權限設置: [root@node1 ~]# vim /etc/vsftpd/vuser_conf.d/tom local_root=/myftp/tom anon_world_readable_only=YES anon_upload_enable=NO anon_mkdir_write_enable=NO anon_other_write_enable=NO [root@node1 ~]# mkdir /myftp/tom [root@node1 ~]# touch /myftp/tom/tom.read #Jerry用戶權限配置: [root@node1 ~]# cp /etc/vsftpd/vuser_conf.d/{tom,jerry} [root@node1 ~]# vim /etc/vsftpd/vuser_conf.d/jerry local_root=/myftp/jerry anon_world_readable_only=YES anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=NO [root@node1 ~]# mkdir /myftp/jerry [root@node1 ~]# touch /myftp/jerry/jerry.read.write #Admin用戶權限配置: [root@node1 ~]# cp /etc/vsftpd/vuser_conf.d/{jerry,admin} [root@node1 ~]# vim /etc/vsftpd/vuser_conf.d/admin local_root=/myftp/tom anon_world_readable_only=YES anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES [root@node1 ~]# mkdir /myftp/admin [root@node1 ~]# touch /myftp/admin/admin.read.write.delete.no_chroot #禁錮用戶 [root@node1 ~]# vim /etc/vsftpd/chroot_list tom jerry #設置目錄權限 [root@node1 ~]# chown virtual -R /myftp/ #重啓服務 [root@node1 ~]# !sys systemctl restart vsftpd
3、測試效果
Tom用戶測試結果:ide
Jerry用戶測試結果:測試
Admin用戶測試結果:ui
Admin用戶也被禁錮了...rest