首页主机资讯Ubuntu如何设置vsftp虚拟用户

Ubuntu如何设置vsftp虚拟用户

时间2025-10-16 09:43:03发布访客分类主机资讯浏览1158
导读:Ubuntu设置vsftpd虚拟用户的详细步骤 1. 安装vsftpd 首先确保系统已安装vsftpd,若未安装则执行以下命令: sudo apt update sudo apt install vsftpd 2. 准备虚拟用户信息文件...

Ubuntu设置vsftpd虚拟用户的详细步骤

1. 安装vsftpd

首先确保系统已安装vsftpd,若未安装则执行以下命令:

sudo apt update
sudo apt install vsftpd

2. 准备虚拟用户信息文件

创建用于存储虚拟用户账号的文本文件(如virtual_users.txt),每行依次填写用户名密码(无额外空格):

sudo touch /etc/vsftpd/virtual_users.txt
sudo chmod 600 /etc/vsftpd/virtual_users.txt
sudo nano /etc/vsftpd/virtual_users.txt

示例内容(添加两个虚拟用户user1user2):

user1
password1
user2
password2

3. 生成虚拟用户数据库

安装db-util工具(用于将文本文件转换为vsftpd可识别的数据库格式):

sudo apt install db-util

使用db_load命令生成哈希数据库(提升安全性):

sudo db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db
sudo chmod 600 /etc/vsftpd/virtual_users.db  # 限制数据库文件权限

4. 配置PAM认证

创建专用于虚拟用户的PAM配置文件(如vsftpd-virtual),指定数据库路径:

sudo nano /etc/pam.d/vsftpd-virtual

添加以下内容(替换为实际数据库文件名):

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

5. 创建系统用户(虚拟用户映射)

虚拟用户需映射到系统用户才能访问文件系统。创建专用系统用户(如ftpuser),并设置其主目录:

sudo adduser --system --home /home/ftpuser --no-create-home --shell /usr/sbin/nologin ftpuser
sudo chown -R ftpuser:ftpuser /home/ftpuser  # 设置目录所有权

6. 配置vsftpd主配置文件

编辑vsftpd主配置文件(/etc/vsftpd.conf),启用虚拟用户并调整相关参数:

sudo nano /etc/vsftpd.conf

修改或添加以下关键配置(删除原有冲突配置):

# 基础设置
listen=YES
listen_ipv6=NO
anonymous_enable=NO  # 禁用匿名用户
local_enable=YES     # 允许本地用户(含虚拟用户)
write_enable=YES     # 允许上传文件

# 虚拟用户相关
guest_enable=YES          # 启用虚拟用户
guest_username=ftpuser    # 虚拟用户映射的系统用户
virtual_use_local_privs=YES  # 虚拟用户使用本地用户权限
user_sub_token=$USER      # 用户子目录占位符
local_root=/home/ftpuser/$USER  # 虚拟用户根目录(动态生成)

# 安全设置
chroot_local_user=YES     # 锁定用户到主目录
allow_writeable_chroot=YES  # 允许chroot目录可写(避免登录错误)
pam_service_name=vsftpd-virtual  # 指定PAM配置文件

7. 创建虚拟用户目录

为每个虚拟用户创建专属FTP目录(基于local_root配置):

sudo mkdir -p /home/ftpuser/user1
sudo mkdir -p /home/ftpuser/user2
sudo chown -R ftpuser:ftpuser /home/ftpuser  # 确保目录权限正确

8. 重启vsftpd服务

应用所有配置变更:

sudo systemctl restart vsftpd

9. 测试虚拟用户登录

使用FTP客户端(如FileZilla、WinSCP或命令行ftp)连接服务器,输入虚拟用户名(如user1)和密码,验证是否能成功登录并访问对应目录(如/home/ftpuser/user1)。

注意事项

  • 若需调整虚拟用户权限(如允许下载、上传),可修改local_root目录下的vsftpd配置文件(如/etc/vsftpd_user_conf/user1),但本例中未启用个性化配置,故无需额外步骤。
  • 确保防火墙允许FTP流量(默认端口21),若使用被动模式需开放额外端口范围。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Ubuntu如何设置vsftp虚拟用户
本文地址: https://pptw.com/jishu/727720.html
Ubuntu如何限制vsftp访问速度 vsftp在Ubuntu上的更新和维护

游客 回复需填写必要信息