标签:lock required 虚拟 连接数据库 htm 数据库服务 案例 splay quick
前几篇介绍了基础,这篇将具体实现几个案例
vim /etc/vsftpd/vusers.txt qq centos momo centos
备注:文件内容格式为奇数行为用户名,偶数行为密码
cd /etc/vsftpd/ db_load -T -t hash -f vusers.txt vusers.db ##编译文件 chmod 600 vusers.db
备注:修改权限是为了安全
useradd -s /sbin/nologin vftpuser chmod 555 /home/vftpuser/ ###把用户家目录的写权限去掉
备注:映射账号对根要没有写权限
mkdir upload ##创建上传用的文件夹 chown vftpuser upload/
备注:把这个文件夹的所属人改为vftpuser用户,次用户虽然对 /home/vftpuser/ 就也是根,没有写权限,但是对根下的目录有写权限。
把匿名写权限打开
vim /etc/pam.d/vusers.db #这个名字叫什么都可
auth required pam_userdb.so db=/etc/vsftpd/vusers
注意:这个vusers名字一定要和第二步中创建的xxxx.db名字一样
account required pam_userdb.so db=/etc/vsftpd/vusers
备注:放在vusers.txt里面的就是合法用户,可以登陆
vim /etc/vsftpd/vsftpd.conf
guest_enable=YES guest_username=vftpuser
vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/vftpuser.d/
mkdir /etc/vsftpd/vftpuser.d/
[root@centos7_77 vftpuser.d]# cat > qq anon_upload_enable=YES anon_mkdir_write_enable=YES 备注:意思是说虚拟用户qq有匿名写权限
vim /etc/vsftpd/vftpuser.d/qq
local_root=/data/qq
备注:要是这个文件夹不存在就创建
mkdir /data/qq
备注:在qq目录下创建个文件用于测试
touch /data/qq/qq.txt
重启,测试
备注:想要增加用户,在vusers.txt文件中写入,再生成db文件
说明:本实验在两台CentOS主机上实现,一台做为FTP服务器,一台做数据库服务器
Centos7:在数据库服务器上安装
yum –y install mariadb-server systemctl start mariadb.service systemctl enable mariadb
Centos6:在数据库服务器上安装
yum –y install mysql-server
centos6:pam_mysql由epel6的源中提供
yum install vsftpd pam_mysql
centos7:无对应rpm包,需手动编译安装
yum -y groupinstall "Development Tools"
yum -y install mariadb-devel pam-devel vsftpd
下载pam_mysql-0.7RC1.tar.gz
https://sourceforge.net/projects/pam-mysql/
[root@centos7_77 ~]# tar xvf pam_mysql-0.7RC1.tar.gz
cd pam_mysql-0.7RC1/
[root@centos7_77 pam_mysql-0.7RC1]# ./configure --with-pam-mods-dir=/lib64/security --with-mysql=/usr --with-pam=/usr
备注:这样需要注意指定的位置,mysql
现在还没有pam_mysql.so
[root@centos7_77 pam_mysql-0.7RC1]# make && make install
1)创建ftpdb数据库
MariaDB [(none)]> create database ftpdb;
2)授权一个用户可以连这个数据库(有读权限就行)
MariaDB [(none)]> grant select on ftpdb.* to vsftpd@‘localhost‘ identified by ‘centos‘;
3)创建一个表
MariaDB [ftpdb]> create table users (id INT AUTO_INCREMENT NOT NULL PRIMARY KEY, name CHAR(50) BINARY NOT NULL, password CHAR(48) BINARY NOT NULL );
4)往表里增加虚拟用户
MariaDB [ftpdb]> INSERT INTO users(name,password) values(‘gg‘,password(‘centos‘));
MariaDB [ftpdb]> INSERT INTO users(name,password) values(‘mm‘,password(‘centos‘));
cd /etc/pam.d/ vim vsftpd.mysql auth required pam_mysql.so user=vsftpd passwd=centos host=localhost db=ftpdb table=users usercolumn=name passwdcolumn=password crypt=2 account required pam_mysql.so user=vsftpd passwd=centos host=localhost db=ftpdb table=users usercolumn=name passwdcolumn=passw ord crypt=2
备注:
配置字段说明
• auth 表示认证
• account 验证账号密码正常使用
• required 表示认证要通过
• pam_mysql.so模块是默认的相对路径,是相对/lib64/security/路径而言,也可以写绝
对路径;后面为给此模块传递的参数
• user=vsftpd为登录mysql的用户
• passwd=magedu 登录mysql的的密码
• host=mysqlserver mysql服务器的主机名或ip地址
• db=vsftpd 指定连接msyql的数据库名称
• table=users 指定连接数据库中的表名
• usercolumn=name 当做用户名的字段
• passwdcolumn=password 当做用户名字段的密码
• crypt=2 密码的加密方式为mysql password()函数加密
vim /etc/vsftpd/vsftpd.conf
vim /etc/vsftpd/vsftpd.conf
guest_enable=YES guest_username=vftpuser
备注:意思说,启动guest用户,系统用户映射为guest用户,而guest用户是vftpuser,
别忘了去掉此用户的家目录的读W权限
指定用户存放配置的文件夹
vim /etc/vsftpd/vsftpd.conf user_config_dir=/etc/vsftpd/vftpuser.d cd /etc/vsftpd/vftpuser.d [root@centos7_77 vftpuser.d]# cat > mm local_root=/data/mm cat > gg local_root=/data/gg
备注:要想gg mm 充当虚拟用户的根必须没有写权限
[root@centos7_77 data]# chmod a=rx mm [root@centos7_77 data]# chmod a=rx gg 再gg、mm目录下创建个文件好测试 [root@centos7_77 gg]# touch gg.txt [root@centos7_77 mm]# touch mm.txt
重启
测试
备注:要想让gg用户有写权限,在/etc/vsftpd/vftpuser.d/gg文件中加入
anon_upload_enable=YES
anon_mkdir_write_enable=YES
还要对/data/gg这个目录要有写权限
setfacl -m u:vftpuser:rwx /data/gg
标签:lock required 虚拟 连接数据库 htm 数据库服务 案例 splay quick
原文地址:https://www.cnblogs.com/xsuid/p/9537235.html