vsftp+pam+mysql(基于不同主机的配置)

开启两个虚拟机V2V3

安装:

V2上安装vsftpdpam_mysql mysql-devel

yum install Cy vsftpd pam_mysql

V3上安装mysql-server

yum install Cy mysql-server

创建虚拟用户账号:

service mysqld start

mysql

CREATE DATABASE vsftpd;

use vsftpd;

GRANT SELECT ON vsftpd.* TO vsftp@’172.16.50.2’ IDENTIFIED BY ‘tony’;

FLUSH PRIVILEGES;

V2上测试能否远程上

mysql -uvsftp -h172.16.50.3 Cp

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}


发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注