Ubuntu如何设置vsftp虚拟用户
导读: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
示例内容(添加两个虚拟用户user1
和user2
):
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