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

相关推荐
知星小度S2 分钟前
Linux权限探秘:驾驭权限模型,筑牢系统安全
linux·运维·服务器
20242817李臻18 分钟前
20242817李臻-安全文件传输系统-项目验收
数据库·安全
行思理30 分钟前
MongoDB慢查询临时开启方法讲解
数据库·mongodb
bbsh209941 分钟前
WebFuture 升级提示“不能同时包含聚集KEY和大字段””的处理办法
数据库·sql·mysql·webfuture
Kaede63 小时前
如何应对Linux云服务器磁盘空间不足的情况
linux·运维·服务器
Zfox_5 小时前
Redis:Hash数据类型
服务器·数据库·redis·缓存·微服务·哈希算法
Kookoos6 小时前
Dynamics 365 Finance + Power Automate 自动化凭证审核
运维·自动化·dynamics 365·power automate
陈丹阳(滁州学院)7 小时前
若依添加添加监听容器配置(删除键,键过期)
数据库·oracle
远方16098 小时前
14-Oracle 23ai Vector Search 向量索引和混合索引-实操
数据库·ai·oracle
GUIQU.9 小时前
【Oracle】数据仓库
数据库·oracle