MySQL中怎么利用pam_mysql模块实现vsftpd虚拟用户
发表于:2024-11-23 作者:千家信息网编辑
千家信息网最后更新 2024年11月23日,MySQL中怎么利用pam_mysql模块实现vsftpd虚拟用户,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、实验
千家信息网最后更新 2024年11月23日MySQL中怎么利用pam_mysql模块实现vsftpd虚拟用户
MySQL中怎么利用pam_mysql模块实现vsftpd虚拟用户,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
一、实验环境的准备
1. 先下载需要用到的软件和依赖包
[root@localhost ~]# yum -y install mariadb-server mariadb-devel pam-devel gcc-c++ vsftpd
2. 安装pam_mysql模块(Plugable Authentication Module 插件式认证模块)
[root@localhost ~]# tar zxf pam_mysql-0.7RC1.tar.gz [root@localhost ~]# cd pam_mysql-0.7RC1 [root@localhost pam_mysql-0.7RC1]# ./configure --with-mysql=/usr --with-openssl --with-pam-mods-dir=/lib/pam_mysql/ [root@localhost pam_mysql-0.7RC1]# make [root@localhost pam_mysql-0.7RC1]# make install
3. 启动相关服务
[root@localhost ~]# systemctl start mariadb [root@localhost ~]# systemctl start vsftpd [root@localhost ~]# systemctl enable mariadb [root@localhost ~]# systemctl enable vsftpd
4.数据库安全设置
[root@localhost ~]# mysql_secure_installation Set root password? [Y/n] Y Remove anonymous users? [Y/n] Y Disallow root login remotely? [Y/n] Y Remove test database and access to it? [Y/n] Y Reload privilege tables now? [Y/n] Y
二、创建虚拟用户
1.创建数据库和表(用于存储虚拟用户的信息)
[root@localhost ~]# mysql -u root -p Enter password: MariaDB [(none)]> create database testdb; #创建测试数据库 MariaDB [(none)]> grant select on testdb.* to linos@localhost identified by 'linux'; #创建用户 MariaDB [(none)]> flush privileges; MariaDB [(none)]> use testdb; Database changed MariaDB [testdb]> create table users(id int AUTO_INCREMENT NOT NULL,name char(20) binary NOT NULL,password char(20) binary NOT NULL,primary key(id)); #创建存储用户的表
2.添加虚拟用户
MariaDB [testdb]> insert into users(name,password) values('tom','linux'); #创建用户 MariaDB [testdb]> insert into users(name,password) values('sam','linux'); #创建用户 MariaDB [testdb]> flush privileges;
三、配置vsftp服务
1.创建pam认证文件
[root@localhost ~]# cat /etc/pam.d/vsftpd.mysql auth required /lib/pam_mysql/pam_mysql.so user=linos passwd=linux host=localhost db=testdb table=users usercolumn=name passwdcolumn=password crypt=0 account required /lib/pam_mysql/pam_mysql.so user=linos passwd=linux host=localhost db=testdb table=users usercolumn=name passwdcolumn=password crypt=0
2.修改vsftp配置文件,主要需要修改下面的配置
anonymous_enable=NO #不允许匿名用户登录 local_enable=YES #允许系统用户登录 write_enable=YES #允许系统用户有写权限 anon_upload_enable=NO #不允许匿名用户上传文件 anon_mkdir_write_enable=NO #不允许匿名用户创建目录 chroot_local_user=YES #默认情况下用系统用户登录ftp之后,用户可以cd到任何目录,这样会有一定的安全隐患,启用这个选项可以把用户禁锢在自己的家目录 guest_enable=YES #启用这个选项可以开启非匿名用户重映射为系统用户的功能 guest_username=virtuser #映射的系统用户 allow_writeable_chroot=YES #从2.3.5版本之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。 要修复这个错误,可以用命令chmod a-w /home/username去除用户主目录的写权限,或者你可以在vsftpd的配置文件中增加下列一项:allow_writeable_chroot=YES pam_service_name=vsftpd.mysql #指定插件pam模块的配置文件
四、验证
1.重启服务
[root@localhost ~]# systemctl restart mariadb [root@localhost ~]# systemctl restart vsftpd
2.添加虚拟用户映射到的系统用户
[root@localhost ~]# useradd -s /sbin/nologin virtuser #指定shell为/sbin/nologin,禁止用户登录系统
3.登录虚拟用户验证
4.验证用户映射
[root@localhost virtuser]# pwd /home/virtuser [root@localhost virtuser]# mkdir pub [root@localhost virtuser]# touch pub/test #virtuser家目录下创建test文件,然后用sam用户登录ftp,可以看到映射到了virtuser用户的家目录
5.配置授权权限
有时候我们需要针对不同的虚拟用户设置不同的权限
[root@localhost ~]# tail -1 /etc/vsftpd/vsftpd.conf user_config_dir=/etc/vsftpd/users_permission/ [root@localhost ~]# mkdir /etc/vsftpd/users_permission/ [root@localhost ~]# cd /etc/vsftpd/users_permission/ [root@localhost users_permission]# echo #anon_upload_enable=YES >> sam [root@localhost home]# chmod -R 777 virtuser/
在启用匿名用户上传权限之前可以看到是禁止上传的,使用sam用户
开启匿名用户上传功能,使用sam用户上传一个文件
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。
用户
目录
文件
权限
系统
登录
配置
模块
安全
数据
数据库
服务
验证
不同
功能
插件
错误
存储
帮助
检查
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
做数据开发和软件开发
cisco服务器开机原理
ui设计和软件开发有何区别
魔法觉醒换服务器会重置账号吗
方舟生存进化服务器炸服两天
在华为搞软件开发工资是多少
云服务器到底能做什么
软件开发必须学数据库吗
微机室不用服务器行吗
工商银行软件开发吧
正规网络技术销售公司
河西区应用软件开发价格咨询报价
小米未来之役无法连接服务器
app软件开发策划书模板
信息化软件开发项目管理
乌鲁木齐网络技术
网络贷款数据库
网络安全法 层面
信息安全中的网络安全包括内容
河南智慧灯杆软件开发
软件开发工作室 怎么运营
两会网络安全保障汇报
dag 网络安全
软件开发程序员工资收入水平
网络安全领域应用机器学习
博雅数据库大学安徽投档线
友订单网络技术有限公司
软件开发技术员叫啥
养老服务数据库
华南师范大学数据库复试