vsftpd基于mysql服务实现:
查看是maradb中是否有pam-mysql,在目录/lib64/security/下。
没有就编译安装pam-mysql
步骤:
1. # yum -y groupinstall "Development Tools" "Server Platform Development"
2. # yum -y install pam-devel openssl-devel mariadb-devel mariadb-server
3. # ./configure --with-mysql=/usr --with-openssl=/usr --with-pam=/usr --with-pam-mods-dir=/lib64/security
注:可使用./configure -help查看配置指令
# make && make install
4. 之后在mysql数据库中创建数据库、表,在表中定义三个字段id,name,passwd。 授权等一系列操作
在此步骤中需要创建以下内容:
连上数据库:开启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、重启服务
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。