FTP虛擬用戶的使用方法
虛擬用戶原理
因為在linux之下,使用vsftp建立用戶之后,默認使用ftp訪問的時候,是會訪問到對應(yīng)的用戶家目錄。如果想多個用戶同時訪問某一個目錄,同時對同一目錄下有著不同的權(quán)限,比如部分用戶只能看,不修改,或者有的用戶只能下載不能上傳這些權(quán)限,這些設(shè)定只能通過vsftp中的虛擬用戶來進行設(shè)定,普通的用戶無法達到這樣的效果。
故先通過建立一個普通系統(tǒng)用戶,建立家目錄,然后將所有的虛擬用戶映射到對應(yīng)的普通系統(tǒng)用戶家目錄中,然后再對各虛擬用戶進行權(quán)限控制,達到上述的效果。
新建用戶
新建用戶marility,用戶鎖定在/var/www/ruibiaofangxuan目錄內(nèi)
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的相關(guān)配置文件設(shè)置
[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值設(shè)定 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 ##監(jiān)聽ipv4 listen_ipv6=NO allow_writeable_chroot=YES ##可以寫,因為禁錮家目錄需去掉用戶寫權(quán)限 tcp_wrappers=YES guest_enable=YES ##開啟虛擬賬戶功能 guest_username=marility ##虛擬賬號映射到本地哪個用戶 pam_service_name=ftp ##加載pam.d中哪個文件的機制 user_config_dir=/etc/vsftpd/config ##虛擬用戶的單個權(quán)限 [root@marility vsftpd]# cat /etc/vsftpd/vuser_list ruibiaofangxuan ##賬戶 eFEBgVTfWJ66OhQ3rTuGB4kt5k5r0aMW ##rubiaofangxuan的密碼 admini ##賬戶 adminipw ##admini的密碼
將密碼文件進行db格式的轉(zhuǎn)化
[root@marility vsftpd]# db_load -T -t hash -f vuser_list /etc/vsftpd/vuser_list.db
沒有db命令的可以先yum -y install db4-utils
然后再改變權(quán)限chmod 600 /etc/vsftpd/vuser_list.db
用戶密碼設(shè)定及db解析的設(shè)定
[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是指對用戶的帳戶有哪些權(quán)限哪些限制進行驗證。
再后面的/lib/security/pam_userdb.so表示該條審核將調(diào)用pam_userdb.so這個庫函數(shù)進行。
注意該函數(shù)會根據(jù)系統(tǒng)的位數(shù)而所在位置不同,可以通過rpm –ql pam查看
同時db指向的文件實際上指向的vuser_list.db ,但默認省略db后綴,故上述db的指向時在配置的時候不能寫為vuser_list.db
設(shè)置虛擬用戶的權(quán)限
[root@marility vsftpd]# cat /etc/vsftpd/config/admini anon_world_readable_only=NO ##關(guān)閉只可讀 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功能打開,同時需要關(guān)閉用戶對自己家目錄的寫權(quán)限
如此設(shè)定后,虛擬用戶也不能對所映射的用戶的家目錄寫入數(shù)據(jù)
故可以在marility的家目錄下新建一個目錄/var/www/ruibiaofangxuan/home
同時將此目錄的屬主屬組改為marility,同時使用chmod改變權(quán)限
在/etc/vsftpd/config文件中再將兩個用戶的映射路徑local_root設(shè)定為所創(chuàng)建目錄即可
systemctl restart vsftpd systemctl enable vsftpd
重啟服務(wù)即可
即普通用戶只能下載上傳資料,而admini用戶有所有權(quán)限,同時也鎖定在/var/www/ruibiaofangxuan此目錄中
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
FileZilla 425 無法連接FTP的解決方法(阿里云服務(wù)器)
很多次都被阿里的這個安全組惡心一下,其實是很好的設(shè)置,但是沒有一些提示讓我們?nèi)チ私獠⒃O(shè)置他,所以一般很多時候都很被動的自行查找解決問題2020-09-09vsftp連接錯誤cannot locate user entry:vsftpd
這篇文章主要介紹了vsftpd登陸錯誤: 500 OOPS: cannot locate user entry:vsftpd問題的解決辦法,需要的朋友可以參考下2014-03-03