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

关防火墙:#systemctl stop firewalld

               #setenforce 0

#yum install mariadb.server

#yum install mariadb-devel  pam-devel

#lftp 172.16.0.1/pub

>cd Sources/sources/pam/

>mget  pam_mysql_0.7Rcl.tar.gz

#tar xf pam_mysql_0.7Rcl.tar.gz

#cd pam_mysql_0.7Rcl/

# ./configure –with-pam=/usr –with-mysql=/usr –with-pam-mods-dir=/usr/lib64/security
# make && make install
#vim /etc/my.cnf.d/server.cnf

[mysqld]
skip_name_resolve=ON
innodb_file_per_table=ON
log_bin=mysql-bin
#systemctl restart vsftpd.service

# mysql -uroot -p1234567890 -h127.0.0.1

> grant all on vsftpd.* to vsftpd@’127.0.0.1′ identified by ‘vsftpd’;

> flush privileges;

# mysql -uvsftpd -h127.0.0.1 -pvsftpd
> create database vsftpd;

> use vsftpd;

> create table users(id INT unsigned not null auto_increment primary key,name varchar(100) not null,password cha not null,unique key(name));

> desc users;
+———-+—————————-+——+—–+———+—————-+
| Field    | Type             —   | Null | Key | Default   | Extra          |
+———-+———————–+——–+——-+———-+——————+
| id       | int(10) unsigned -| NO   | PRI | NULL    | auto_increment |
| name     | varchar(100)   –  | NO   | UNI | NULL    |                |
| password | char(48)         | NO   |     | NULL     |                |
+———-+——————+——+—–+———+—————-+

> insert into users(name,password) values(‘tom’,password(‘mageedu’)),(‘jerry’,password(‘jerry’));

> select * from users;
+—-+———+—————————————————————————–+
| id | name  |                                 password                                  |
+—-+——–+——————————————————————————+
|  1 | tom   |      *9A94EE7D14C10908118B62D2DA88E6932E11E438 |
|  2 | jerry   |      *09FB9E6E2AA0750E9D8A8D22B6AA8D86C85BF3D0 |
+—-+——-+——————————————————————————-+

#mkdir /ftproot/

#useradd -d /ftproot/vuser vuser

#mkdir /ftproot/vuser/pub

#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
# systemctl restart vsftpd

#chmod a-w /ftproot/vuser/

# systemctl restart vsftpd

# cd /ftproot/vuser/

# mkdir upload

#chown vuser.vuser upload/

# cd /etc/vsftpd/

]# vim vsftpd.conf

加上user_config_dir=/etc/vsftpd/vusers_config/

# mkdir /etc/vsftpd/vusers_config/

# vim /etc/vsftpd/vusers_config/tom

anon_upload_enable=YES

# vim /etc/vsftpd/vusers_config/jerry

anon_upload_enable=YES
anon_mkdir_write_enable=YES

#systemctl restart vsftpd.service

测试机:

    # ftp 172.16.254.142

            tom:只可以上传、下载。

            jerry:可上传可添加或删除文件及目录

原创文章,作者:忠神通,如若转载,请注明出处:http://www.178linux.com/77731

(0)
忠神通忠神通
上一篇 2017-06-07 16:26
下一篇 2017-06-07 21:09

相关推荐

  • Shell编程 详解特殊变量之位置参数

    今天我们来探讨shell编程的特殊变量:位置变量。 首先我创建了一个testargs.sh的小脚本: #!/usr/bin/env bash # # Author: jacky18676887374@aliyun.com # date: 20160813-19:30:59 # Vervion:&nb…

    Linux干货 2016-08-15
  • 第三周 用户和组管理

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [root@localhost ~]# who root     pts/0        2017-12-16 22:46 (192.168.43.233) root     pts/1        2017-12-16 22:46 (192.168.43.233…

    2017-12-16
  • Linux的学习之路-第一周

    >N21-Keen-第一周作业 ### 1. 计算机的组成及其原理     >计算机的组成是根据冯诺依曼体系设计的,主要分为五大部分:控制器、运算器、存储器、输入设备和输出设备。          >其中控制器和运算器分布在CPU上,主要用来做控制和运算作用。存储器也就是…

    Linux干货 2016-07-16
  • Linux发行版、发行版联系与区别

    参考这篇文章<2016年最佳Linux发行版排行榜> http://mt.sohu.com/20160128/n436204298.shtml #1 最好的回归发行版:OpenSUSE OpenSUSE背后的SUSE公司是最古老的Linux企业,成立于Linus Torvalds放出Linux的一年之后。它其实早于Red Hat诞生,同时也是社区…

    Linux干货 2016-08-15
  • 第六周练习

    1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; # cp /etc/rc.d/rc.sysinit /tmp # vim /tmp/rc.sysinit 末行模式下:%s@^[[:space:]]\+@#&am…

    Linux干货 2016-12-03
  • Linux的哲学思想及Linux发行版

    讲述一下几个问题: 第一,Linux的哲学思想;第二,Linux发行版的基础目录名称,命名法则和功用规定;第三,Linux不同发行版之间的联系和区别。 Linux的哲学思想: 1、一切皆文件。是Unix/Linux的基本哲学之一,不仅普通的文件,目录,字符设备,块设备,套接字等在Unix/Linux中都是以文件被对待。 2、小型,单一用途的程序。程序和可执行…

    Linux干货 2016-09-17