centos

FTPServer虚拟用户怎么创建

小樊
37
2025-11-01 16:12:49
栏目: 云计算

FTPServer虚拟用户创建步骤(以vsftpd为例)

1. 安装vsftpd

首先确保系统已安装vsftpd(Linux主流发行版通用步骤):

sudo apt update && sudo apt install vsftpd -y  # Debian/Ubuntu
sudo yum install vsftpd -y                    # CentOS/RHEL

2. 准备虚拟用户凭证文件

创建文本文件存储虚拟用户的用户名+密码(每行一个用户,奇数行用户名、偶数行密码):

sudo mkdir -p /etc/vsftpd/vusers
sudo nano /etc/vsftpd/virtual_users.txt

示例内容(按格式添加用户):

ftpuser1
password123
ftpuser2
securepass456

保存后生成Berkeley DB数据库文件(vsftpd认证所需格式):

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  # 限制文件权限

3. 配置PAM认证

创建专用于虚拟用户的PAM配置文件(指向数据库文件):

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

添加以下内容(关键参数说明:db指定数据库路径,无需文件扩展名):

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

4. 创建本地映射用户

虚拟用户需映射到本地系统用户(用于访问FTP目录,无系统登录权限):

sudo useradd --system --home /home/virtual_ftp --no-create-home --shell /sbin/nologin virtual_ftp
sudo chown -R virtual_ftp:virtual_ftp /home/virtual_ftp  # 设置目录归属
sudo chmod 755 /home/virtual_ftp                       # 限制目录权限

5. 修改vsftpd主配置文件

编辑vsftpd核心配置(/etc/vsftpd.conf),启用虚拟用户并调整权限:

sudo nano /etc/vsftpd.conf

关键配置项(按需调整):

# 基础虚拟用户设置
guest_enable=YES                # 启用虚拟用户模式
guest_username=virtual_ftp        # 虚拟用户映射的本地用户
virtual_use_local_privs=YES       # 虚拟用户继承本地用户权限(若需限制,可设为NO并单独配置)

# 认证与访问控制
pam_service_name=vsftpd.virtual   # 指定PAM配置文件
local_enable=YES                  # 允许本地用户(含虚拟用户)登录
anonymous_enable=NO               # 禁用匿名登录(根据需求调整)

# 目录限制
chroot_local_user=YES             # 锁定用户到其根目录(增强安全)
allow_writeable_chroot=YES        # 允许根目录可写(若chroot开启且需上传)

6. 重启vsftpd服务

应用所有配置变更:

sudo systemctl restart vsftpd
sudo systemctl enable vsftpd      # 设置开机自启

7. 测试虚拟用户登录

使用FTP客户端(如FileZilla、命令行ftp)连接服务器:

登录成功后,可验证上传/下载权限(根据配置调整)。

可选:配置用户级权限(细化控制)

若需为不同虚拟用户设置不同权限(如禁止某用户上传),可创建用户专属配置文件:

sudo mkdir -p /etc/vsftpd/user_configs
sudo nano /etc/vsftpd/user_configs/ftpuser1

添加限制(如禁止上传):

write_enable=NO
anon_upload_enable=NO

修改主配置文件,指定用户配置目录:

user_config_dir=/etc/vsftpd/user_configs

重启服务使配置生效。

注意事项

0
看了该问题的人还看了