FTP虛擬用戶的使用方法
虛擬用戶原理
因為在linux之下,使用vsftp建立用戶之后,默認使用ftp訪問的時候,是會訪問到對應的用戶家目錄。如果想多個用戶同時訪問某一個目錄,同時對同一目錄下有著不同的權限,比如部分用戶只能看,不修改,或者有的用戶只能下載不能上傳這些權限,這些設定只能通過vsftp中的虛擬用戶來進行設定,普通的用戶無法達到這樣的效果。
故先通過建立一個普通系統用戶,建立家目錄,然后將所有的虛擬用戶映射到對應的普通系統用戶家目錄中,然后再對各虛擬用戶進行權限控制,達到上述的效果。
新建用戶
新建用戶marility,用戶鎖定在/var/www/ruibiaofangxuan目錄內
mkdir /var/www/ruibiaofangxuan useradd -d /var/www/ruibiaofangxuan marility chown marility.marility /var/www/ruibiaofangxuan chmod u-w /var/www/ruibiaofangxuan
給虛擬用戶生成隨機密碼
[root@marility ~]# tr -cd "[:alnum:]" < /dev/urandom | fold -w32 |head -n1 eFEBgVTfWJ66OhQ3rTuGB4kt5k5r0aMW
vsftp的相關配置文件設置
[root@marility vsftpd]# grep ^[^#] /etc/vsftpd/vsftpd.conf anonymous_enable=NO ##禁止匿名用戶 local_enable=YES ##開啟本地賬戶,虛擬賬戶需要映射到本地賬戶 write_enable=YES local_umask=022 ##本地用戶的umask值 anon_umask=022 ##虛擬用戶的umask值設定 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_file=/var/log/xferlog##日志路徑 xferlog_std_format=YES ascii_upload_enable=YES ##允許上傳ascii格式文件 ascii_download_enable=YES ftpd_banner=Welcome to blah FTP service. chroot_local_user=YES ##禁錮用戶在家目錄 chroot_list_enable=NO ##不啟用本地禁用目錄,使用虛擬用戶時不需要開戶本地列表過濾 listen=YES ##監聽ipv4 listen_ipv6=NO allow_writeable_chroot=YES ##可以寫,因為禁錮家目錄需去掉用戶寫權限 tcp_wrappers=YES guest_enable=YES ##開啟虛擬賬戶功能 guest_username=marility ##虛擬賬號映射到本地哪個用戶 pam_service_name=ftp ##加載pam.d中哪個文件的機制 user_config_dir=/etc/vsftpd/config ##虛擬用戶的單個權限 [root@marility vsftpd]# cat /etc/vsftpd/vuser_list ruibiaofangxuan ##賬戶 eFEBgVTfWJ66OhQ3rTuGB4kt5k5r0aMW ##rubiaofangxuan的密碼 admini ##賬戶 adminipw ##admini的密碼
將密碼文件進行db格式的轉化
[root@marility vsftpd]# db_load -T -t hash -f vuser_list /etc/vsftpd/vuser_list.db
沒有db命令的可以先yum -y install db4-utils
然后再改變權限chmod 600 /etc/vsftpd/vuser_list.db
用戶密碼設定及db解析的設定
[root@marility vsftpd]# cat /etc/pam.d/ftp auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_list account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_list
auth是指對用戶的用戶名口令進行驗證。
accout是指對用戶的帳戶有哪些權限哪些限制進行驗證。
再后面的/lib/security/pam_userdb.so表示該條審核將調用pam_userdb.so這個庫函數進行。
注意該函數會根據系統的位數而所在位置不同,可以通過rpm –ql pam查看
同時db指向的文件實際上指向的vuser_list.db ,但默認省略db后綴,故上述db的指向時在配置的時候不能寫為vuser_list.db
設置虛擬用戶的權限
[root@marility vsftpd]# cat /etc/vsftpd/config/admini anon_world_readable_only=NO ##關閉只可讀 anon_upload_enable=YES ##允許上傳 anon_mkdir_write_enable=YES ##允許新建目錄 anon_other_write_enable=YES ##允許修改目錄/文件名稱,刪除 local_root=/var/www/ruibiaofangxuan/home ##家目錄映射 [root@marility vsftpd]# cat /etc/vsftpd/config/ruibiaofangxuan anon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=NO anon_other_write_enable=NO local_root=/var/www/ruibiaofangxuan/home
為了安全,需要將用戶禁錮在家目錄,故會在vsftpd.conf中將chroot_local_user=YES功能打開,同時需要關閉用戶對自己家目錄的寫權限
如此設定后,虛擬用戶也不能對所映射的用戶的家目錄寫入數據
故可以在marility的家目錄下新建一個目錄/var/www/ruibiaofangxuan/home
同時將此目錄的屬主屬組改為marility,同時使用chmod改變權限
在/etc/vsftpd/config文件中再將兩個用戶的映射路徑local_root設定為所創建目錄即可
systemctl restart vsftpd systemctl enable vsftpd
重啟服務即可
即普通用戶只能下載上傳資料,而admini用戶有所有權限,同時也鎖定在/var/www/ruibiaofangxuan此目錄中
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持。
相關文章:
1. vsftpd的530 Login incorrect錯誤解決方法 vsftpd登錄錯誤2. 利用apache ftpserver搭建ftp服務器的方法步驟3. centos 搭建ftp服務器詳解及簡單介紹4. linux下scp和sftp命令使用詳解5. 5分鐘快速搭建FTP服務器的圖文教程6. Serv-U和CuteFTP無法連接FTP服務器問題解答7. window8.1下FTP服務器安裝配置圖文教程8. 淺談防火墻對FTP的影響及故障排除分析9. Linux下使用pure-ftpd建立匿名ftp訪問的方法10. FileZilla Server ftp 服務器下通過alias別名設置虛擬目錄(多個分區)
