开启两个虚拟机V2、V3
安装:
在V2上安装vsftpd和pam_mysql mysql-devel
yum install –y vsftpd pam_mysql
在V3上安装mysql-server
yum install –y mysql-server
创建虚拟用户账号:
service mysqld start
mysql
CREATE DATABASE vsftpd;
use vsftpd;
GRANT SELECT ON vsftpd.* TO [email protected]’172.16.50.2’ IDENTIFIED BY ‘tony’;
FLUSH PRIVILEGES;
在V2上测试能否远程上
mysql -uvsftp -h172.16.50.3 –p
SHOW DATABASES;
可以连上。
在V3上创建表
CREATE TABLE users ( id INT UNSIGNED NOTNULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50) BINARY NOT NULL, passwdCHAR(48) BINARY NOT NULL );
查看创建的表
DESC users
添加测试的虚拟用户
mysql> INSERT INTO users(name,passwd)VALUES(‘tom‘,password(‘tony‘));
mysql> INSERT INTO users(name,passwd)VALUES(‘jerry‘,password(‘tony‘));
查看SELECT * FROM users
在V2上建立pam认证所需文件
vim /etc/pam.d/vsftpd.mysql
添加两行:
auth required pam_mysql.so user=vsftppasswd=tony host=172.16.50.3 db=vsftpd table=users usercolumn=namepasswdcolumn=passwd crypt=0
account required pam_mysql.so user=vsftppasswd=tony host=172.16.50.3 db=vsftpd table=users usercolumn=namepasswdcolumn=passwd crypt=0
建立虚拟用户映射的系统用户及对应的目录
# useradd -s /sbin/nologin -d /var/ftprootvuser
# chmod go+rx /var/ftproot
请确保/etc/vsftpd.conf中已经启用了以下选项
anonymous_enable=YES
local_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 start
# chkconfig vsftpd on
OK完成了。
配置虚拟用户具有不同的访问权限
vsftpd可以在配置文件目录中为每个用户提供单独的配置文件以定义其ftp服务访问权限,每个虚拟用户的配置文件名同虚拟用户的用户名。配置文件目录可以是任意未使用目录,只需要在vsftpd.conf指定其路径及名称即可。
1、配置vsftpd为虚拟用户使用配置文件目录
# vim vsftpd.conf
添加如下选项
user_config_dir=/etc/vsftpd/vusers_config
2、创建所需要目录,并为虚拟用户提供配置文件
# mkdir /etc/vsftpd/vusers_config/
# cd /etc/vsftpd/vusers_config/
# touch tom jerry
3、配置虚拟用户的访问权限
虚拟用户对vsftpd服务的访问权限是通过匿名用户的相关指令进行的。比如,如果需要让tom用户具有上传文件的权限,可以修改/etc/vsftpd/vusers_config/tom文件,在里面添加如下选项即可。
anon_upload_enable={YES|NO}
anon_mkdir_write_enable={YES|NO}
anon_other_write_enable={YES|NO}