FTP虛擬用戶的使用方法
虛擬用戶原理
因?yàn)樵趌inux之下,使用vsftp建立用戶之后,默認(rèn)使用ftp訪問(wèn)的時(shí)候,是會(huì)訪問(wèn)到對(duì)應(yīng)的用戶家目錄。如果想多個(gè)用戶同時(shí)訪問(wèn)某一個(gè)目錄,同時(shí)對(duì)同一目錄下有著不同的權(quán)限,比如部分用戶只能看,不修改,或者有的用戶只能下載不能上傳這些權(quán)限,這些設(shè)定只能通過(guò)vsftp中的虛擬用戶來(lái)進(jìn)行設(shè)定,普通的用戶無(wú)法達(dá)到這樣的效果。
故先通過(guò)建立一個(gè)普通系統(tǒng)用戶,建立家目錄,然后將所有的虛擬用戶映射到對(duì)應(yīng)的普通系統(tǒng)用戶家目錄中,然后再對(duì)各虛擬用戶進(jìn)行權(quán)限控制,達(dá)到上述的效果。
新建用戶
新建用戶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
給虛擬用戶生成隨機(jī)密碼
[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 ##不啟用本地禁用目錄,使用虛擬用戶時(shí)不需要開戶本地列表過(guò)濾 listen=YES ##監(jiān)聽ipv4 listen_ipv6=NO allow_writeable_chroot=YES ##可以寫,因?yàn)榻d家目錄需去掉用戶寫權(quán)限 tcp_wrappers=YES guest_enable=YES ##開啟虛擬賬戶功能 guest_username=marility ##虛擬賬號(hào)映射到本地哪個(gè)用戶 pam_service_name=ftp ##加載pam.d中哪個(gè)文件的機(jī)制 user_config_dir=/etc/vsftpd/config ##虛擬用戶的單個(gè)權(quán)限 [root@marility vsftpd]# cat /etc/vsftpd/vuser_list ruibiaofangxuan ##賬戶 eFEBgVTfWJ66OhQ3rTuGB4kt5k5r0aMW ##rubiaofangxuan的密碼 admini ##賬戶 adminipw ##admini的密碼
將密碼文件進(jìn)行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是指對(duì)用戶的用戶名口令進(jìn)行驗(yàn)證。
accout是指對(duì)用戶的帳戶有哪些權(quán)限哪些限制進(jìn)行驗(yàn)證。
再后面的/lib/security/pam_userdb.so表示該條審核將調(diào)用pam_userdb.so這個(gè)庫(kù)函數(shù)進(jìn)行。
注意該函數(shù)會(huì)根據(jù)系統(tǒng)的位數(shù)而所在位置不同,可以通過(guò)rpm –ql pam查看
同時(shí)db指向的文件實(shí)際上指向的vuser_list.db ,但默認(rèn)省略db后綴,故上述db的指向時(shí)在配置的時(shí)候不能寫為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
為了安全,需要將用戶禁錮在家目錄,故會(huì)在vsftpd.conf中將chroot_local_user=YES功能打開,同時(shí)需要關(guān)閉用戶對(duì)自己家目錄的寫權(quán)限
如此設(shè)定后,虛擬用戶也不能對(duì)所映射的用戶的家目錄寫入數(shù)據(jù)
故可以在marility的家目錄下新建一個(gè)目錄/var/www/ruibiaofangxuan/home
同時(shí)將此目錄的屬主屬組改為marility,同時(shí)使用chmod改變權(quán)限
在/etc/vsftpd/config文件中再將兩個(gè)用戶的映射路徑local_root設(shè)定為所創(chuàng)建目錄即可
systemctl restart vsftpd systemctl enable vsftpd
重啟服務(wù)即可
即普通用戶只能下載上傳資料,而admini用戶有所有權(quán)限,同時(shí)也鎖定在/var/www/ruibiaofangxuan此目錄中
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持本站。
版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。