一、安装所需要程序
1、安装vsftpd
yum -y install vsftpd
2、安装MySQL
yum -y install mysql-server mysql-devel pam_mysql
二、创建虚拟用户账号
1.准备数据库及相关表 首先请确保mysql服务已经正常启动。而后,按需要建立存储虚拟用户的数据库即可,这里将其创建为vsftpd数据库。
mysql> create database vsftpd; mysql> grant select on vsftpd.* to vsftpd@localhost identified by ' mysql> grant select on vsftpd.* to vsftpd@127.0.0.1 identified by ' mysql> flush privileges; mysql> use vsftpd; mysql> create table users ( id int AUTO_INCREMENT NOT NULL, name char(20) binary NOT NULL, password char(48) binary NOT NULL, primary key(id) );
2、添加测试的虚拟用户
根据需要添加所需要的用户,需要说明的是,这里将其密码为了安全起见应该使用PASSWORD函数加密后存储。
mysql> insert into users(name,password) values('magedu1',password('magedu'));mysql> insert into users(name,password) values('magedu2',password('magedu'));
三、配置vsftpd
1.建立pam认证所需文件
#vi /etc/pam.d/vsftpd.mysql添加如下两行 auth required /lib/security/pam_mysql.so user=vsftpd passwd=www.magedu.com host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2 account required /lib/security/pam_mysql.so user=vsftpd passwd=www.magedu.com host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
2.修改vsftpd的配置文件,使其适应mysql认证
建立虚拟用户映射的系统用户及对应的目录 useradd -s /sbin/nologin -d /var/ftproot vuser chmod go+rx /var/ftproot 请确保/etc/vsftpd.conf中已经启用了以下选项 anonymous_enable=NOlocal_enable=YES write_enable=YES anon_upload_enable=NO anon_mkdir_write_enable=NO chroot_local_user=YES 而后添加以下选项 guest_enable=YES guest_username=vuser 并确保pam_service_name选项的值如下所示 pam_service_name=vsftpd.mysql
四、启动vsftpd服务
service vsftpd startchkconfig vsftpd on
查看端口开启情况
netstat -tnlp |grep :21tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 23286/vsftpd
使用虚拟用户登录,验正配置结果
ftp 10.0.0.2 [root@localhost ~]# ftp 10.0.0.2 Connected to 10.0.0.2 (10.0.0.2). 220 (vsFTPd 2.2.2) Name (10.0.0.2:root): magedu1 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> pwd 257 "/" [root@localhost ~]# ftp 10.0.0.2 Connected to 10.0.0.2 (10.0.0.2). 220 (vsFTPd 2.2.2) Name (10.0.0.2:root): magedu2 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> pws ?Invalid command ftp> pwd 257 "/"
五、配置虚拟用户具有不同的访问权限
1、配置vsftpd为虚拟用户使用配置文件目录
# vim vsftpd.conf添加如下选项 user_config_dir=/etc/vsftpd/vusers_config
2、创建所需要目录,并为虚拟用户提供配置文件
mkdir /etc/vsftpd/vusers_config/cd /etc/vsftpd/vusers_config/touch magedu1 magedu2
3、配置虚拟用户的访问权限
修改/etc/vsftpd/vusers_config/ magedu1 anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES 修改/etc/vsftpd/vusers_config/ magedu2 anon_upload_enable=NO anon_mkdir_write_enable=NO anon_other_write_enable=NO
4、验证结果
[root@localhost vusers_config]# ftp 10.0.0.2 Connected to 10.0.0.2 (10.0.0.2). 220 (vsFTPd 2.2.2) Name (10.0.0.2:root): magedu1 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> ls 227 Entering Passive Mode (10,0,0,2,114,1). 150 Here comes the directory listing. drwx------ 2 500 500 4096 Sep 16 15:45 cd 226 Directory send OK. ftp> mkdir ccd 257 "/ccd" created ftp> exit 221 Goodbye. [root@localhost vusers_config]# ftp 10.0.0.2 Connected to 10.0.0.2 (10.0.0.2). 220 (vsFTPd 2.2.2) Name (10.0.0.2:root): magedu2 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> mkdir cd 550 Permission denied.
原创文章,作者:N21_ Dominic,如若转载,请注明出处:http://www.178linux.com/47042