如何進行vsftpd的虛擬用戶建立
在前面我們已經對FTP服務器建立的安裝和配置進行了詳述,這里我們再來對相關的用戶建立進行一下解析。那么本地用戶在這里就不多介紹了,主要介紹實現虛擬用戶的二種方法:vsftpd建立虛擬用戶的過程。
1、使用本地數據文件:
生成虛擬用戶文件,建立/etc/vsftpd/vuser.txt文件,內容如下:
tonyzhang#虛擬用戶1111 #虛擬用戶1密碼 tomqin #虛擬用戶2111 #虛擬用戶2密碼
安裝生成數據庫rpm包:db4-utils。
- rpm -ivh db4-utils-4.3.29-9.fc6.i386.rpm
生成虛擬用戶數據庫。
- db_load -T -t hash -f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.txt
創建本地映射用戶,修改本地映射用戶家目錄權限。
- useradd -d /var/ftp/vuserdir -s /sbin/nologin vuserchmod o+rw /var/ftp/vuserdir
修改pam認證文件/etc/pam.d/vsftpd,將原有內容注釋。
- authrequired /lib/security/pam_userdb.so db=/etc/vsftpd/vusersaccount required
- /lib/security/pam_userdb.so db=/etc/vsftpd/vusers
修改/etc/vsfptd/vsftp.conf,增加以下內容。
- guest_enable=YESguest_username=vuser
2、使用MySQL數據文件:
創建本地映射用戶。
- useradd -s /sbin/nologin vuser
修改/etc/vsfptd/vsftp.conf,增加以下內容。
- guest_enable=YESguest_username=vuser
安裝MySQL及相關軟件包。
- yum -y install mysql.i*yum -y install perl-DBD-MySQL.i*yum
- -y install mysql-server.i*yum -y install mysql-devel.i*
在MySQL中建立數據庫及用戶表。
- [root@polo ]
- # mysql -u root mysql -pmysql>create database ftpvuser;
- #建立用戶數據庫
- mysql>use ftpvuser;
- #打開數據庫
- mysql>create table users(name char(16) binary,passwd char(16) binary);
- #建立存取用戶信息表
- #插入二個用戶及口令
- mysql>insert into users (name,passwd) values ('tonyzhang',password('111'));
- mysql>insert into users (name,passwd) values ('tomqin',password('111'));
#p#授權vuser可以讀ftpvuser數據庫的users表。
- [root@polo ]
- #mysql -u root mysql -p mysql>grant select on ftpvuser.users to vuser@localhost identified by '123';
- mysql>quit
在上述授權完成后,可通過下圖方法驗證授權是否成功。
編譯MySQL的PAM認證模塊。
首先需要下載(http://sourceforge.net/projects/pam-mysql)MySQL的PAM認證模塊源碼,使用tar命令解壓后,進行編譯。在編譯前需要安裝以下軟件包。
- yum -y install gcc.i*yum -y install gcc-c++.i*yum -y install pam-devel.i*
安裝完成后就可以進行編譯。
- ./configuremakemake install
編輯完成后可查看/lib/security目錄下是否已有對應pam模塊(如下圖)。
修改pam認證文件/etc/pam.d/vsftpd,將原有內容注釋。
auth required pam_mysql.so user=vuser passwd=123 host=localhost db=ftpvuser table=users usercolumn=name passwdcolumn=passwd crypt=2account required pam_mysql.so user= vuser passwd=123 host=localhost db= ftpvuser table=users usercolumn=name passwdcolumn=passwd crypt=2
上述二種虛擬用戶配置完成后,在通過以下步驟可針對每個虛擬用戶指定不同的配置文件。
1、修改/etc/vsfptd/vsftp.conf
- user_config_dir=/etc/vsftpd/vuserconf
2、在/etc/vsfptd/vsftp.vuserconf目錄下,以每個虛擬用戶的用戶名為名稱建立配置文件即可。