建立虚拟用户的账号数据库并为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"

相关推荐
之歆2 分钟前
MongoDB 深度解析:从原理到实践的完整指南
数据库·mongodb
一 乐3 分钟前
幼儿园管理系统|基于springboot + vue幼儿园管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·幼儿园管理系统
tiancaijiben4 分钟前
阿里云日志服务SLS全流程对接与深度使用指南
网络·数据库
云计算磊哥@7 分钟前
运维开发宝典028-MySQL04数据库热备
数据库·adb·运维开发
五阿哥永琪20 分钟前
正则表达式
数据库·mysql·正则表达式
只说证事24 分钟前
2026 国家认可的计算机专业证书
服务器
月巴月巴白勺合鸟月半27 分钟前
在Linux下开发桌面程序
linux·运维·服务器
LaughingZhu28 分钟前
Product Hunt 每日热榜 | 2026-06-13
数据库·mysql
zh路西法28 分钟前
【tmux入门】终端分屏、SSH远程守护与一键启动脚本
linux·运维·ssh·bash
c2385635 分钟前
GDB 进程概念详解(下篇)—— 多进程与进阶调试能力
linux·服务器·数据库