Linux 中實現文件傳輸服務(二)

繼續上章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用戶測試結果:
Linux 中實現文件傳輸服務(二)ide

Jerry用戶測試結果:
Linux 中實現文件傳輸服務(二)測試

Admin用戶測試結果:
Linux 中實現文件傳輸服務(二)ui

Admin用戶也被禁錮了...rest

相關文章
相關標籤/搜索