ftp服務器虛擬用戶訪問(for linux平臺)
一.配置yum,以便安裝軟件包
yum全局文件編輯目錄: /etc/yum.repos.d/rhel-source.repo
[root@wanghong ~]# vim //etc/yum.repos.d/rhel-source.repo
#[rhel-source]
#name=Red Hat Enterprise Linux $releasever - $basearch - Source
#baseurl=ftp://ftp.redhat.com/pub/redhat/linux/enterprise/$releasever/en/os/SRPMS/
#enabled=0
#gpgcheck=1
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
#[rhel-source-beta]
#name=Red Hat Enterprise Linux $releasever Beta - $basearch - Source
#baseurl=ftp://ftp.redhat.com/pub/redhat/linux/beta/$releasever/en/os/SRPMS/
#enabled=0
#gpgcheck=1
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta,file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[wanghong]
Name=123
Baseurl=file:///mnt/Server
enable=1
gpgcheck=0
備註: #是註釋作用,在此對文件沒用任何影響,可以去掉
二.安裝db4-utils-4.3.29-9.fc6.i386.rpm軟件包
[root@wanghong ~]#yum install db4-utils-4.3.29-9.fc6.i386.rpm
或者使用rpm –ivh /mnt/Packages/db4-utils-4.3.29-9.fc6.i386.rpm --force 強制安裝
1. 建立虛擬用戶的用戶名/密碼數據庫
[root@wanghong ~]#vim /etc/vsftpd/vusers.list
Mike
123
John
456
備註: 奇數行爲用戶名,偶數行爲上一行中用戶所對應的密碼
使用db_load工具將列表文件轉化爲DB數據庫文件
[root@wanghong ~]#cd /etc/vsftpd
[root@wanghong vsftpd]#db_load -T -t hash -f vusers.list vusers.db
-T選項允許非Berkeley DB的應用程序使用從文本格式轉換的DB數據庫文件
-t hash 選項指定讀取數據文件的基本方法
-f 選項用於指定用戶名和密碼列表文件
2.建立ftp訪問的根目錄及虛擬用戶對應的系統賬號
[root@wanghong ~]#useradd –d /var/ftproot –s /sbin/nologin virtual
建立映射賬號virtual
[root@wanghong ~]#chmod 755 /var/ftproot
更改ftp根目錄權限
[root@wanghong ~]#ls –lh /boot > /var/ftproot/vutest.file
建立測試文件
3.建立PAM認證文件
PAM配置文件主要用於爲程序提供用戶認證控制,vsftpd服務使用的默認PAM配置文件爲/etc/pam.d/vsftpd
[root@wanghong ~]#vim /etc/pam.d/vsftpd.vu
#%PAM-1.0
auth required pam_userdb.so db=/etc/vsftpd/vusers
account required pam_userdb.so db=/etc/vsftpd/vusers
配置時注意將db選項指定爲先前建立的虛擬用戶數據庫文件vusers(省略db擴展名)
4.修改vsftpd.conf配置文件,添加虛擬用戶支持
在vsftpd.conf配置文件中添加guest_enable、guest_username配置項,將訪向ftp服務的所有虛擬用戶對應到同一系統用戶賬號virtual,並修改pam_service_name配置項,指向上一步建立的PAM配置文件/etc/pam.d/vsftpd.vu
[root@wanghong ~]#vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES 備註:使用虛擬用戶需啓用本地用戶
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd.vu 備註:修改使用的PAM文件位置
userlist_enable=YES
tcp_wrappers=YES
guest_enable=YES 備註:啓用用戶映射功能
guest_username=virtual 備註:將映射用戶指定爲virtual
5.爲不同的虛擬用戶建立獨立的配置文件
爲虛擬用戶john添加上傳文件、創建目錄的權限
[root@wanghong ~]#vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/vusers_dir //添加此行配置項,指定用戶配置目錄位置
爲用戶mike、john建立獨立的配置目錄及文件
[root@wanghong ~]#mkdir /etc/vsftpd/vusers_dir //創建用戶目錄
[root@wanghong ~]#cd /etc/vsf tpd/vusers_dir
[root@wanghong vusers_dir]#vim john
anon_upload_enable=YES
anon_mkdir_write_enable=YES
[root@wanghong vusers_dir]#touch mike //爲mike建立空配置文件(無額外權限設置)
6.測試虛擬用戶訪問ftp服務
首先需重啓vsftpd服務,分別使虛擬用戶mike、john在ftp服務器上下載,上傳文件,最後使用匿名和本地用戶去登錄ftp服務器