vsftpd的虚拟用户配置
时间: 2025-02-07 19:07:44 浏览: 14
配置 vsftpd 的虚拟用户
安装必要的软件包
为了配置 vsftpd 使用虚拟用户,需先安装 vsftpd
和数据库支持工具 db4
:
yum install -y vsftpd db4
创建本地用户作为入口用户
创建一个新的本地系统用户来充当所有虚拟用户的映射用户。此操作是为了让这些虚拟用户能够通过该本地用户的身份进行 FTP 访问。
useradd -d /home/vftp -s /sbin/nologin vftp
编辑主配置文件 /etc/vsftpd/vsftpd.conf
编辑 vsftpd 主配置文件以设置基本的安全性和功能选项[^1]:
anonymous_enable=NO # 禁止匿名登录
chroot_local_user=YES # 将用户限制在其家目录内
virtual_use_local_privs=YES # 设置虚拟用户具有与本地用户相同的权限
user_config_dir=/etc/vsftpd/vconf # 指定虚拟用户的个性化配置文件所在位置
local_root=/home/share # 设定默认的根目录(可选)
guest_enable=YES # 启用虚拟用户模式
guest_username=vftp # 映射到之前创建的实际存在的用户名vftp
allow_writeable_chroot=YES # 允许在 chroot jail 中有写权限
listen=YES # 监听 IPv4 连接请求
listen_ipv6=NO # 不监听 IPv6 请求
pam_service_name=vsftpd.vu # PAM服务名称用于验证虚拟用户身份认证
准备 PAM 文件以便处理虚拟用户认证
复制并调整现有的 PAM 文件模板,使其适用于新的虚拟用户环境:
cp /etc/pam.d/vsftpd{,.bak}
echo "auth required pam_pwdfile.so pwdfile /etc/vsftpd/virtual_users.txt" > /etc/pam.d/vsftpd.vu
echo "account required pam_permit.so" >> /etc/psmd/vsftpd.vu
这里指定了一个自定义的密码文件路径 /etc/vsftpd/virtual_users.txt
来存储虚拟用户的账号信息[^5]。
构建虚拟用户列表和对应的哈希库
准备一个纯文本文件保存所有的虚拟用户名字及其明文形式的密码组合,并转换成适合 PAM 使用的形式:
touch /etc/vsftpd/virtual_users.txt
# 添加一对或多对<username>:<password>记录至上述文件中...
# 推荐使用htpasswd命令生成安全散列后的条目而非直接编写明文密码
db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db
chmod 600 /etc/vsftpd/virtual_users.*
创建特定于单个虚拟用户的配置文件
对于每一个希望赋予特殊权限或不同访问条件下的虚拟用户,在指定的位置下建立相应的子配置文件。例如为名为 test1 的用户提供读写能力,则可以这样做[^4]:
mkdir -p /etc/vsftpd/vconf/
vim /etc/vsftpd/vconf/test1
向其中加入如下内容:
local_root=/home/ftp # 自定义根目录
write_enable=YES # 开启上传下载等功能
anon_world_readable_only=NO # 取消只读约束
anon_upload_enable=YES # 允许匿名上传(如果适用的话)
anon_mkdir_write_enable=YES # 允许创建新文件夹
anon_other_write_enable=YES # 更多其他写入权利
最后重启 vsftpd 使更改生效:
systemctl restart vsftpd.service
相关推荐



















