vsftpd基于mysql服务实现:mysql
查看是maradb中是否有pam-mysql,在目录/lib64/security/下。sql
没有就编译安装pam-mysql
数据库
步骤:vim
1. # yum -y groupinstall "Development Tools" "Server Platform Development"ide
2. # yum -y install pam-devel openssl-devel mariadb-devel mariadb-serverui
3. # ./configure --with-mysql=/usr --with-openssl=/usr --with-pam=/usr --with-pam-mods-dir=/lib64/security加密
注:可以使用./configure -help查看配置指令orm
# make && make installserver
4. 以后在mysql数据库中建立数据库、表,在表中定义三个字段id,name,passwd。 受权等一系列操做ssl
在此步骤中须要建立如下内容:
连上数据库:开启mariadb服务以后使用mysql命令
a、CREATE DATABASE vsftpd;##建立数据库
b、use vsftpd;#切换至数据库中
c、CREATE TABLE users (id int AUTO_INCREMENT NOT NULL PRIMARY KEY,name char(30) NOT NULL,password char(48) binary NOT NULL );##建立表
d、INSERT INTO users(name,password) VALUES ('tom',password('mageedu'));##建立一个用户
e、INSERT INTO users(name,password) VALUES ('jerry',password('mageedu'));##建立一个用户
f、SELECT * FROM users;##查看表
g、GRANT select ON vsftpd.* TO vsftpd@’127.0.0.1‘ IDENTIFIED BY 'mageedu';##受权用户
h、FLUSH PRIVILEGES;
退出,能够再次链接数据库,检查是否建立数据库和表及表的内容是否成功。
5. pam配置文件;在目录/etc/pam.d/下有个vsftpd,但在使用时要从新建立配置文件,在/etc/pam.d/目录下建立 vsftpd.mysql 在里面添加下面内容:(注意下面的内容都是在上一步当中的数据库中添加建立过的)
auth required pam_mysql.so user=vsftpd passwd=mageedu host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2(加密方式类型)
account required pam_mysql.so user=vsftpd passwd=mageedu host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
6.建立用户:useradd -s /sbin/nologin -d /ftproot vuser
chmod go+rx /ftproot/
配置文件:在配置文件/etc/vsftpd/vsftpd.conf中添加pam_service_name=vsftpd.mysql
gusest_enable=YES
gusest_username=vuser
在此同时确保上面的配置正确。
7.这时使用另外一台主机尝试是否能够成功登录。
能够修改配置文件玩玩查看上传等功能。
8.若是只容许其中一个用户上传,则能够经过如下方法:
a、首先将主配置文件中的上传功能注释了
b、建立一个用户的专注配置文件目录/etc/vsftpd/vusers.conf.d在此目录下vim tom 在tom文件中添加anon_upload_enable=YES
vim jerry 在此文件中添加anon_upload_enable=NO
c、此时在主配置文件中要明确告诉vsftpd要使用用户配置目录,则在主配置文件中添加user_config_dir=/etc/vsftpd/vusers.conf.d/
d、重启服务