vsftpd虚拟用户配置
虚拟用户原理:将vsftpd用户数据库中的用户映射到一个系统账户上面来,所拥有的权限看这个系统账户。
学习规划:创建一个虚拟用户wang,一个系统账户ftpuser,将虚拟用户wang和系统用户ftpuser建立映射关系。
安装vsftpd
本文是在ubuntu2004下实验的:
apt -y install vsftpd

创建虚拟用户
安装依赖包
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

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
访问



上传文件,新建目录测试

删除文件,重命名测试


浙公网安备 33010602011771号