在前面我们已经对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目录下,以每个虚拟用户的用户名为名称建立配置文件即可。