pam_mysql认证ftp虚拟用户账号,且拥有不同的权限( Blog 16)

复习mariadb

程序包:vsftpd, mariadb-server, mariadb-devel, pam-devel
# yum -y install vsftpd mariadb-server mariadb-devel pam-devel
pam模块路径:/usr/lib64/security/
pam是认证服务:调用pam即可认证,具体是什么认证方式由pam配置文件决定;
pam认证方式:文件、mysql、ldap

在CentOS 7中要使用pam_mysql要手动编译,CentOS 6中EPEL已经提供;

编译pam_mysql步骤:
一、开发环境
# yum -y groupinstall “Development Tools” “Server Platform Development”
(安装过程中:

vim 特性回顾:
set ai 自动换行
set ic ignore case
set hls high light search
set is 跟踪查找
set nu 行号显示
set tabstop=# TAB几个空格
set sm 括号匹配
syntax on 语法高亮
)
二、编译
# tar xf pam_mysql-0.7RC1.tar.gz
# cd pam_mysql-0.7RC1/
# ./configure –with-mysql=/usr –with-pam=/usr –with-pam-mods-dir=/usr/lib64/security
–with-mysql 针对mysql编译;
–with-pam-mods-dir 编译生成的pam模块存放路径;

# make -j 4 && make install

查看:# ls /usr/lib64/security/
pam_mysql.so

配置mysql:
~]# vim /etc/my.cnf.d/server.cnf
[mysqld]
skip_name_resolve=ON
innodb_file_per_table=ON
log_bin=mysql-bin

~]# systemctl start mariadb.service
~]# ss -tnl

~]# mysql_secure_installation

~]# mysql -uroot -hlocalhost -pmagedu
> GRANT ALL ON vsftpd.* TO ‘vsftpd’@’127.0.0.1’ IDENTIFIED BY ‘vsftpd’;
~]# mysql -uvsftpd -h127.0.0.1 -pvsftpd
> CREATE TABLE users(id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(60) NOT NULL, password CHAR(48) NOT NULL, UNIQUE KEY(name));
> INSERT INTO users(name,password) VALUES (‘tom’,PASSWORD(‘magedu’)),(‘jerry’,PASSWORD(‘jerry’));

配置vsftpd:
pam提供给vsftpd的配置文件:/etc/pam.d/vsftpd
vsftpd的配置文件:/etc/vsftpd.conf
# vim /etc/pam.d/vsftpd.vusers
auth required /usr/lib64/security/pam_mysql.so user=vsftpd passwd=vsftpd host=127.0.0.1 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
account required /usr/lib64/security/pam_mysql.so user=vsftpd passwd=vsftpd host=127.0.0.1 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
# vim /etc/vsftpd/vsftpd.conf
pam_service_name=vsftpd.vusers <– 认证配置文件;
guest_enable=YES <– 启用虚拟账号
guest_username=vuser <– 将虚拟账号映射至vuser用户

# mkdir -v /ftproot
# useradd -d /ftproot/vuser vuser
# systemctl restart vsftpd.service
# ss -tnl ( :21 )

在非本机测试连接ftp
~]# lftp -u tom 172.16.0.67
Password:
lftp tom@172.16.0.67:~> ls
ls: Login failed: 530 Login incorrect.

# chmod -w /ftproot/vuser/
# ls -ld /ftproot/vuser/
dr-x——. 1 vuser vuser 80 Dec 7 13:37 /ftproot/vuser/
# chmod +rx /ftproot/vuser/

在远程登陆ftp
~]# install -dv /ftproot/vuser/pub
~]# install -dv -o vuser -g vuser /ftproot/vuser/upload
~]# lftp -u jerry 172.16.0.67
Password:
lftp jerry@172.16.0.67:~> ls
drwxr-xr-x 1 0 0 0 Dec 07 05:40 pub
drwxr-xr-x 1 1001 1001 18 Dec 08 00:47 upload

注意:upload目录有vuser权限,但不能上传;

给予共享权限:
# vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/vusers_config/
# mkdir /etc/vsftpd/vusers_config/
# vim /etc/vsftpd/vusers_config/tom
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_umask=022
# systemctl restart vsftpd.service

anon_umask必须设置其它用户可读;
否则创建的目录下的所有文件不可见;

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/90441

(2)
逆神阳逆神阳
上一篇 2017-12-20 02:38
下一篇 2017-12-20 02:48

相关推荐

  • 第三周作业

    1.列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [root@localhost ~]# who | cut -d' ' -f1 | sort -u 2.取出最后登录到当前系统的用户的相关信息。 […

    Linux干货 2017-01-04
  • 网络管理

    常见的网络物理组件:路由器、交换机、PC机 网络的特性:速度、成本、安全性、可用性、可扩展性、可靠性、拓扑 拓扑结构:           物理拓扑:总线拓扑               &…

    Linux干货 2017-05-09
  • Boot目录下内容丢失导致系统无法启动

    Boot目录下内容丢失导致系统无法启动 笔者朋友近期在一次学习过程中不慎将虚拟机中boot目录下内容丢失,导致系统无法启动。当然此前他并不知道是这样,只是应为莫名的弹出框报错所有导致系统无法启动。此后朋友将此故障告知笔者,笔者本身其实也是小白刚刚学习linux不就,但是对这些稀奇古怪的故障感觉很有兴趣,所以笔者就掉进坑里搞了好久才搞出来点眉目来。为了让更多学…

    Linux干货 2016-10-24
  • Mozart的剑(文本处理工具)——壹剑(文本查看cat、more、less)

    壹剑(文本查看cat、more、less) 博客之前突然想起两句话,很有意思的话,在此贴出上句,希望可以与大家分享,不可问度娘,有兴趣的可以试试。 上句:烟锁池塘柳    下句: 上句:因荷而得藕    下句: 1>cat命令是Linux系统下的一个文本输出命令,一般是用于观看某个文件的内容,特点:一次性显示整个…

    2017-07-29
  • rpm软件管理工具详解

    1 Linux软件安装概述 安装程序的方式: 软件包概述 RPM RPM的缺点 RPM包 RPM分包 RPM命令的使用 rpm 包管理 升级注意项 如何安装rpm软件包 如何卸载rpm软件包 如何升级rpm软件包 如何查询rpm软件包 如何查看与rpm包相关的文件和其他信息 如何校验rpm包 RPM的数据库 1 Linux软件安装概述 安装程序的方式: 通用…

    Linux干货 2016-09-06
  • 马哥教育网络班22期+第7周课程练习

    1、创建一个10G分区,并格式为ext4文件系统; [root@localhost ~]# fdisk /dev/sda 命令(输入 m 获取帮助):n All primary partitions are in use 添加逻辑分区 5 起始&nb…

    Linux干货 2016-10-09

评论列表(1条)

  • 马哥教育
    马哥教育 2018-01-07 18:08

    拓扑和实验目的能清晰的给出来,会更好~