vsftpd虚拟用户配置

虚拟用户原理:将vsftpd用户数据库中的用户映射到一个系统账户上面来,所拥有的权限看这个系统账户。

学习规划:创建一个虚拟用户wang,一个系统账户ftpuser,将虚拟用户wang和系统用户ftpuser建立映射关系。

安装vsftpd

本文是在ubuntu2004下实验的:

apt -y install vsftpd

image

创建虚拟用户

安装依赖包

ubuntu系统:

apt -y install db-util

centos系统

yum -y install libdb-utils

生成虚拟用户数据库文件

1.新建虚拟用户临时文件
格式:奇数行是用户名,偶数行是密码

mkdir /etc/vsftpd
vim /etc/vsftpd/vusers.txt

查看刚创建的虚拟用户临时文件,创建了一个虚拟用户:wang,密码设置成123456

root@wang:~# cat /etc/vsftpd/vusers.txt 
wang
123456

2.生成虚拟用户数据库文件

db_load -T -t hash -f /etc/vsftpd/vusers.txt /etc/vsftpd/vusers.db

查看刚生成的虚拟用户数据库文件

root@wang:~# file /etc/vsftpd/vusers.*
/etc/vsftpd/vusers.db:  Berkeley DB (Hash, version 9, native byte-order)
/etc/vsftpd/vusers.txt: ASCII text

3.安全加固,设置访问权限

chmod 600 /etc/vsftpd/*

查看权限

root@wang:~# ll /etc/vsftpd/*
-rw------- 1 root root 12288 Oct 30 05:59 /etc/vsftpd/vusers.db
-rw------- 1 root root    12 Oct 30 05:55 /etc/vsftpd/vusers.txt

虚拟用户映射到系统账户

1.创建系统账户

useradd -d /data/ftproot -s /sbin/nologin -r ftpuser
mkdir -p /data/ftproot/wang

2.创建pam认证文件

cat > /etc/pam.d/ftp_vuser_auth <<EOF
auth required pam_userdb.so db=/etc/vsftpd/vusers
account required pam_userdb.so db=/etc/vsftpd/vusers
EOF

3.配置主配置文件

vim /etc/vsftpd.conf

image

4.配置虚拟账户对立配置文件

mkdir /etc/vsftpd/vsftpd_user_conf

# 在指定的目录下创建和虚拟用户同名的文件,该文件就是该虚拟用户独立的配置文件
cat > /etc/vsftpd/vsftpd_user_conf/wang <<EOF
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/data/ftproot/wang/
EOF

配置说明:

write_enable=YES               # 是否允许登陆用户有写权限。为YES时,下面的配置项才有意义
anon_upload_enable=YES         # 允许匿名登入者有上传文件(非目录)的权限
anon_mkdir_write_enable=YES    # 允许匿名登入者有新增目录的权限
anon_other_write_enable=YES    # 允许匿名登入者更多于上传或者建立目录之外的权限,比如删除或者重命名
local_root=/data/ftproot/wang/ # 禁锢用户访问目录

5.重启服务

systemctl restart vsftpd

访问

image

image

image

上传文件,新建目录测试

image

删除文件,重命名测试

image

posted @ 2022-10-30 15:04  wangxupeng  阅读(720)  评论(0)    收藏  举报