Linux 中實現文件傳輸服務(二)
阿新 • • 發佈:2018-07-27
term 安裝程序 fig gin 分享圖片 域名解析 anon size upload
繼續上章vsftpd,介紹vsftpd的虛擬用戶配置
一、背景需求
當有多個用戶需要不同的權限時,本地用戶、匿名用戶都無法控制那麽精細,這時候可以考慮下虛擬用戶了,例如有如下要求。
家目錄 | 讀 | 寫 | 刪除 | 是否允許切換目錄 | |
---|---|---|---|---|---|
tom | /myftp/tom | √ | × | × | × |
jerry | /myftp/jerry | √ | √ | × | × |
admin | /myftp | √ | √ | √ | √ |
二、詳細配置
``` 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
三、測試效果
Tom用戶測試結果:
Jerry用戶測試結果:
Admin用戶測試結果:
Admin用戶也被禁錮了...
Linux 中實現文件傳輸服務(二)