vsftpd虚拟用户

vsftpd支持的用户类型

1、匿名用户 --ftp:服务器端自动映射的一个系统用户

2、本地用户 --普通用户:使用useradd添加的用户

3、虚拟用户 --服务器端自动映射的一个系统用户,多个虚拟用户同时被映射为一个系统用户,

--但不同的虚拟用户可以具有不同的访问权限,其权限模拟匿名用户,其登录方式模拟本地用户,

--默认只能下载,不能上传。

--不存在于系统账号数据中,安全,例如存储在mysql数据库中

设置MySQL虚拟用户

1、安装软件包

yum install gcc*

yum install mysql-server

yum install mysql-devel

yum install mysql

tar -xvf pam_mysql-0.7RC1.tar.gz

cd pam_mysql-0.7RC1

./configure --with-mysql=/usr --with-openssl

make

make install

2、拷贝pam_mysql模块:

# cp /lib/security/pam_mysql.so  /lib64/security/

3、启动MySQL数据库,添加数据

# /etc/init.d/mysqld restart

# mysql

mysql> create database vsftpd;       ----------创建一个库

Query OK, 1 row affected (0.00 sec)

mysql> use vsftpd;             =------------------使用库

Database changed

mysql> create table users(                               ---------按照条件创建一张表

-> id INT AUTO_INCREMENT NOT NULL,

-> name CHAR(20) BINARY NOT NULL,

-> password CHAR(48) BINARY NOT NULL,

-> PRIMARY key(id))

-> ;

Query OK, 0 rows affected (0.03 sec)

mysql> DESC users;   -------查看这张表

+----------+----------+------+-----+---------+----------------+

| Field    | Type     | Null | Key | Default | Extra          |

+----------+----------+------+-----+---------+----------------+

| id       | int(11)  | NO   | PRI | NULL    | auto_increment |

| name     | char(20) | NO   |     | NULL    |                |

| password | char(48) | NO   |     | NULL    |                |

+----------+----------+------+-----+---------+----------------+

3 rows in set (0.00 sec)

mysql> GRANT SELECT ON vsftpd.* TO [email protected] IDENTIFIED BY ‘vsftpd‘;                -----授权

Query OK, 0 rows affected (0.01 sec)

mysql> GRANT SELECT ON vsftpd.* TO [email protected] IDENTIFIED BY ‘vsftpd‘;           -----授权

mysql> FLUSH PRIVILEGES;         ------刷新数据库

mysql> INSERT INTO users (name,password) VALUE (‘tom‘,‘redhat‘),(‘jim‘,‘redhat‘);       -----插入数据到表中

Query OK, 2 rows affected (0.00 sec)

Records: 2  Duplicates: 0  Warnings: 0

mysql> select * from users;      ---------查看表中添加的数据

+----+------+----------+

| id | name | password |

+----+------+----------+

|  1 | tom  | redhat   |

|  2 | jim  | redhat   |

+----+------+----------+

2 rows in set (0.00 sec)

mysql> quit ----退出

# mysql -uvsftpd -p          -----使用vsftpd用户登录MySQL数据库 密码就是vsftpd

Enter password:

mysql> SHOW DATABASES;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| test               |

| vsftpd             |

+--------------------+

3 rows in set (0.00 sec)

mysql> use vsftpd           -----使用这个数据库

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

mysql> SHOW TABLES;          -----查看这张表

+------------------+

| Tables_in_vsftpd |

+------------------+

| users            |

+------------------+

1 row in set (0.00 sec)

mysql> select * from users;   -----查看这张表的数据

+----+------+----------+

| id | name | password |

+----+------+----------+

|  1 | tom  | redhat   |

|  2 | jim  | redhat   |

+----+------+----------+

2 rows in set (0.00 sec)

4、建立pam认证所需文件

# vim /etc/pam.d/vsftpd.mysql

auth required /lib64/security/pam_mysql.so user=vsftpd passwd=vsftpd host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=0 sqllog=yes logtable=logs logmsgculumn=msg logusercolumn=user logpidcolumn=pid loghostcolumn=host logrhostcolumn=rhost logtimecolumn=logtime verbose=1

account required /lib64/security/pam_mysql.so user=vsftpd passwd=vsftpd host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=0 sqllog=yes logtable=logs logmsgculumn=msg logusercolumn=user logpidcolumn=pid loghostcolumn=host logrhostcolumn=rhost logtimecolumn=logtime verbose=1

pam_mysql.so                     //用于linux连接mysql的库文件

user=vsftpd                       //用于访问Mysql的用户。

passwd=vsftpd                       //对应的是用户的密码。

host=localhost                    //代表mysql在本机。

db=vsftpd                           //指定在mysql上的数据库。

table=users                            //指定mysql上存放用户的表格。

usercolumn=name             //指定存储用户名的列。

passwdcolumn=passwd     //指定存储密码的列。

crypt=0

crypt=0           //crypt=0: 明文密码

//crypt=1: 使用crpyt()函数(对应SQL数据里的encrypt(),encrypt()随机产生salt)

//crypt=2: 使用MYSQL中的password()函数加密

//crypt=3: 表示使用md5的散列方式

5、修改vsftpd的配置文件

# useradd -s /sbin/nologin -d /var/ftproot vuser             -----------添加一个映射的虚拟用户,这个就是虚拟用户的家目录

[[email protected] security]# chmod go+rx /var/ftproot/

[[email protected] security]# ls -ld /var/ftproot/

drwxr-xr-x. 2 vuser vuser 4096 Jan  4 21:45 /var/ftproot/

vim /etc/vsftpd/vsftpd.conf

guest_enable=YES

guest_username=vuser

pam_service_name=vsftpd.mysql

# /etc/init.d/vsftpd restart

Shutting down vsftpd:                                      [  OK  ]

Starting vsftpd for vsftpd:

到这里虚拟用户就已经建立成功了

虚拟用户单独设置权限

# vim /etc/vsftpd/vsftpd.conf

user_config_dir=/etc/vsftpd/vusers

新建目录

mkdir /etc/vsftpd/vusers

新建文件

cd /etc/vsftpd/vusers

touch tom jim

具体的权限可以在这些虚拟用户名称的文件里修改

重启服务生效

时间: 2024-11-08 13:27:55

vsftpd虚拟用户的相关文章

VSFTPD虚拟用户实现

VSFTPD虚拟用户 所有的虚拟用户会统一映射为一个指定的系统帐号:访问共享位置即为此系统帐号的家目录各虚拟用户可赋予不同的访问权限,通过匿名用户的权限控制参数进行指定. 1.创建虚拟用户的帐号密码数据库文件     a.创建帐号密码文件 格式:奇数行为帐号,偶数行为密码 [[email protected]~]# vim /etc/vsftpd/vusers.list test1     #用户 123456   #密码 test2 123456 test3 123456 b.将该文件转换为二

实现基于mysql验证的vsftpd虚拟用户 (centos6)

实现基于mysql验证的vsftpd虚拟用户 (centos6) 说明:本实验在两台Cento主机上实现,一台作为FTP服务器,一台作为数据库服务器 FTP服务器ip:172.16.250.90 Mysql服务器ip:172.16.252.16 一.安装ftp服务器安装包 yum install vsftpd pam_mysql 二.数据库服务器创建虚拟用户帐号   1.建立虚拟用户数据库      mysql> create database vsftpd;     mysql> show 

vsftpd虚拟用户整理

Vsftpd虚拟用户的配置 第一步.安装 # wget http://docs.linuxtone.org/soft/lemp/CentOS-Base.repo # yum clean all # yum -y install vsftpd # yum -y install db4-utils 第二步.建立虚拟用户 #vim /home/ftpusr.txt 1.  user1 2.  password1 3.  user2 4.  password2 5.  user3 6.  passwor

烂泥:ubuntu下vsftpd虚拟用户配置

本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我微信ilanniweb. 以前搭建vsftpd都是在centos下,本以为在ubuntu按照以前的步骤搭建即可.可是实际情况告诉我是,我太想当然了.经过一番的折腾终于把ubuntu下vsftpd虚拟用户的配置搞定了,下面就把我的配置步骤贴出来供得为参考. 一.业务要求 现在要求创建一个FTP账号ailanni,该账号只能登录到/www目录下,不能切换到上级目录.同时处于安全考虑还要求该账号上传的文件权限为644

VSFTPD虚拟用户实战配置

FTP是文件传输协议,正是由于这种协议使得主机间可以共享文件. FTP 使用TCP生成一个虚拟连接用于控制信息,然后再生成一个单独的 TCP 连接用于数据传输. vsftpd是一款在LINUX发行版中最主流的FTP服务器程序:特点是小巧轻快,安全易用:能让其自身特点得发发挥和掌握.如果使用系统用户登录FTP,是比较危险的,所以我们主要采用vsftpd虚拟用户登录FTP服务器进行常见的操作,当然配置就相对复杂一点.(centos7安装) 1.首先安装FTP以及虚拟用户需要用到的软件及认证模块 yu

FTP服务学习笔记之基于MySQL+PAM的vsftpd虚拟用户

基于mysql+PAM的vsftpd虚拟用户配置 一.实验说明 操作系统:Redhat5.8_X64bit 实验平台:VMware Workstation 所需要的软件包:pam_mysql-0.7RC1.tar.gz 二.安装所需要程序 1.事先安装好开发环境和mysql数据库 # yum -y groupinstall "Development Tools" "Development Libraries" #yum -y install mysql-server

ubuntu server vsftpd 虚拟用户及目录

ubuntu server vsftpd 虚拟用户及目录 一:需求场景: 在ubuntu server上开设一个虚拟网站,在网站目录建立一个ftp目录,允许用户通过ftp上传网站文件到网站目录: 同时,该ftp用户,只能用于ftp操作,不能用于登陆ubuntu server 二:配置 1:先建立虚拟网站: 同样先创建apache2 网站配置文件,然后启用站点: 比如这里我的测试 网站 :www.cocoa.com 内网访问 站点: 网站目录在:/var/www/cocoa/web 在该目录下,建

ahjesus配置vsftpd虚拟用户在Ubuntu

网上搜索了很多资料,过时,不全,货不对版 已下步骤亲测有效,不包含匿名用户登录 1.新建/home/loguser.txt 并填充内容,格式如下 用户名密码用户名密码用户名密码 2.生成db文件用于用户验证 执行db_load -T -t hash -f /home/loguser.txt /etc/vsftpd_login.db 如果没有装db会提示你apt-get install,根据提示的内容输入命令安装后再次执行生成db 3.设置数据库文件的访问权限 chmod 600 /etc/vsf

mysql数据库结合pam_mysql模块实现vsftpd虚拟用户

mysql数据库结合pam_mysql模块实现vsftpd虚拟用户登录 最近开始学mysql,自己做一个小实验,来个总结,比较容易理解,没什么太多理论性的东西. 一.实验环境的准备 1. 先下载需要用到的软件和依赖包 [[email protected] ~]# yum -y install mariadb-server mariadb-devel pam-devel gcc-c++ vsftpd 2. 安装pam_mysql模块(Plugable Authentication Module 插

Vsftpd 虚拟用户配置

System:Centos6.7x86_64 Author:miles Date:2015/11/24 shanghai step 1 安装 yum -y install vsftpd db4-utils step 2 创建虚拟用户 vim /opt/loginuser.txt milesaway   milesawaypwd db_load -T -t hash -f /home/loginuser.txt /etc/vsftpd/vsftpd_login.db chmod 600 /etc/