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

相关推荐
安逸sgr1 分钟前
MCP 协议深度解析(一):MCP 协议概览与架构设计
服务器·网络·人工智能·网络协议·agent·mcp
XiaoLeisj3 分钟前
Android 文件与数据存储实战:SharedPreferences、SQLite 与 Room 的渐进式实现
android·java·数据库·ui·sqlite·room·sp
scofield_gyb3 分钟前
【MySQL】表空间丢失处理(Tablespace is missing for table 错误处理)
数据库·mysql
淮北4943 分钟前
ubuntu下好用的工具
linux·运维·ubuntu
..过云雨6 分钟前
【负载均衡oj项目】03. compile_server编译运行服务设计
运维·c++·html·负载均衡
kaico20186 分钟前
jenkins的安装—windows环境
运维·jenkins
cg_ssh6 分钟前
MinIO docker 集群
运维·docker·容器
知无不研7 分钟前
Linux主函数的参数含义
linux·运维·服务器·主函数的参数
蘑菇小白7 分钟前
基于嵌入式的数据库SQLite
linux·数据库·sqlite
梨落秋霜10 分钟前
Python入门篇【连接数据库】
数据库·python·oracle