千家信息网

vsftpd虚拟用户

发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,vsftpd支持的用户类型1、匿名用户 --ftp:服务器端自动映射的一个系统用户2、本地用户 --普通用户:使用useradd添加的用户3、虚拟用户 --服务器端自动映射的一个系统用户,多个虚拟用户
千家信息网最后更新 2025年01月20日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 vsftpd@localhost IDENTIFIED BY 'vsftpd'; -----授权

Query OK, 0 rows affected (0.01 sec)


mysql> GRANT SELECT ON vsftpd.* TO vsftpd@127.0.0.1 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 -----------添加一个映射的虚拟用户,这个就是虚拟用户的家目录

[root@xizjh security]# chmod go+rx /var/ftproot/

[root@xizjh 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

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

重启服务生效


用户 数据 数据库 密码 文件 权限 系统 存储 服务 不同 函数 就是 方式 服务器 用户名 目录 登录 普通 安全 成功 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全南通大学专业 数据库字段的默认值属性怎么设置 软件开发的成本如何预测 2021数据库工程师资料 我的世界服务器武器 浪服务器与华为服务器性能对比 钦州也蓝网络技术有限公司 上海星乾网络安全信息公司 极速传奇软件开发公司bim 服务器运维工程师书籍 钻块服务器 华事达互联网科技 贵阳服务器管理 电了版网络技术系统基础 网络安全渗透测试证书 apn能设置代理服务器吗 广州萌游网络技术有限公司 数据库对高校的重要性 移动基站与什么服务器相连 石家庄app软件开发费用 软件开发 vc是什么岗位 审计软件和数据库工具的差别 2021数据库工程师资料 公安网络安全自查情况报告 是数据库数据字典的所有者 sql文件导入数据库出错 数据库在键码属性上建立索引 调研我国通信网络技术产业 杨浦区品牌软件开发推荐咨询 网络安全三级和二级区别
0