建立虚拟用户的账号数据库并为vsftpd服务器添加虚拟用户支持的脚本

脚本如下

#!/bin/bash

检查是否以 root 用户运行

if [ "$EUID" -ne 0 ]; then

echo "不是root无法运行。"

exit 1

fi

安装所需软件包

yum install -y vsftpd db4-utils

备份原始配置文件

cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak

创建虚拟用户账号文件

cat <<EOF > /etc/vsftpd/virtual_users.txt

testuser1

testpassword1

testuser2

testpassword2

EOF

生成虚拟用户数据库文件

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

chmod 600 /etc/vsftpd/virtual_users.db

创建 PAM 认证文件

cat <<EOF > /etc/pam.d/vsftpd.vu

auth required pam_userdb.so db=/etc/vsftpd/virtual_users

account required pam_userdb.so db=/etc/vsftpd/virtual_users

EOF

修改 vsftpd 配置文件

cat <<EOF > /etc/vsftpd/vsftpd.conf

anonymous_enable=NO

local_enable=YES

write_enable=YES

local_umask=022

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

xferlog_std_format=YES

chroot_local_user=YES

allow_writeable_chroot=YES

listen=NO

listen_ipv6=YES

pam_service_name=vsftpd.vu

guest_enable=YES

guest_username=ftp

user_sub_token=\$USER

local_root=/var/ftp/\$USER

userlist_enable=YES

tcp_wrappers=YES

pasv_enable=YES

pasv_min_port=30000

pasv_max_port=31000

EOF

创建虚拟用户映射的系统用户目录

mkdir -p /var/ftp/testuser1

mkdir -p /var/ftp/testuser2

chown -R ftp:ftp /var/ftp

重启 vsftpd 服务

systemctl restart vsftpd

systemctl enable vsftpd

echo "虚拟用户账号数据库已建立,vsftpd 服务器已添加虚拟用户支持。"

echo "虚拟用户: testuser1, testuser2"

echo "对应密码: testpassword1, testpassword2"

相关推荐
曹牧30 分钟前
SQL:多个事务同时修改同一索引块
数据库·sql
峥无31 分钟前
Linux系统编程基石:静态库·动态库·ELF文件·进程地址空间全景图
linux·运维·服务器
aXin_ya32 分钟前
微服务第八天 Sentinel 四种分布式事务模式
java·数据库·微服务
Ruci ALYS34 分钟前
MySQL大小写敏感、MySQL设置字段大小写敏感
数据库·mysql
Lee川39 分钟前
Prisma 实战指南:像搭积木一样设计古诗词数据库
前端·数据库·后端
码云数智-大飞44 分钟前
本地部署大模型:隐私安全与多元优势一站式解读
运维·网络·人工智能
极创信息1 小时前
信创产品认证怎么做?信创产品测试认证的主要流程
java·大数据·数据库·金融·软件工程
Harvy_没救了2 小时前
【网络部署】 Win11 + VMware CentOS8 + Nginx 文件共享服务 Wiki
运维·网络·nginx
春风有信2 小时前
【2026.05.01】Windows10安装Docker Desktop 4.71.0.0步骤及问题解决
运维·docker·容器