CentOS 中 FileZilla 用户权限设置方法
一 方案总览
- 在 CentOS 上,FileZilla 通常指客户端;要实现“用户权限”管理,需部署服务器端:
- 选择一:使用系统自带的 vsftpd(Linux 原生,适合大多数场景)。
- 选择二:部署 FileZilla Server(官方服务器,图形化管理,支持 FTP/FTPS,Windows 平台为主;若需在 Linux 使用,通常通过 Wine 运行,生产环境不推荐)。
- 客户端连接参数要点:协议建议选 SFTP(端口 22) 或 FTP/FTPS(端口 21);被动模式(PASV)在 NAT/云环境中需正确配置。
二 方案一 使用 vsftpd 设置用户权限(推荐)
- 安装与启用
- 安装:sudo yum install -y vsftpd
- 启动与开机自启:sudo systemctl enable --now vsftpd
- 创建系统用户与目录
- 创建用户(禁止登录 shell,仅用于 FTP):sudo useradd -m -s /sbin/nologin ftpuser
- 设置密码:sudo passwd ftpuser
- 主目录与权限示例:
- 只读用户:sudo chown ftpuser:ftpuser /home/ftpuser && sudo chmod 755 /home/ftpuser
- 读写用户:sudo chown ftpuser:ftpuser /home/ftpuser && sudo chmod 775 /home/ftpuser
- 限制用户到主目录(chroot)
- 编辑 /etc/vsftpd/vsftpd.conf:
- 启用本地用户 chroot:chroot_local_user=YES
- 允许写入 chroot 目录:allow_writeable_chroot=YES
- 可选:仅允许本地用户登录(更安全)
- local_enable=YES
- anonymous_enable=NO
- 防火墙放行
- FTP 主动/被动:sudo firewall-cmd --permanent --add-service=ftp && sudo firewall-cmd --reload
- 若自定义 PASV 端口段(如 10090-10100),一并放行:sudo firewall-cmd --permanent --add-port=10090-10100/tcp && sudo firewall-cmd --reload
- 重启服务:sudo systemctl restart vsftpd
- 客户端连接测试
- 协议:FTP(或 FTPS);主机:服务器 IP;端口:21;登录:ftpuser/密码
- 常见故障
- 登录报错 530 Login incorrect:检查 /etc/pam.d/vsftpd 中是否因 pam_shells.so 导致被拒;必要时注释该行并重启 vsftpd(仅在确认安全策略允许时操作)。
- 被动模式失败:在客户端启用被动模式,并在路由器/NAT 上转发 PASV 端口段;服务器端可设置 pasv_min_port/pasv_max_port 并放行对应端口。
三 方案二 使用 FileZilla Server 设置用户权限(Windows 服务器为主)
- 适用场景:需要快速、图形化地管理多用户/多目录权限(读、写、删除、创建、列目录等),并支持 FTPS。
- 安装与登录
- 在 Windows 服务器安装 FileZilla Server;管理控制台默认端口 14147(仅本地访问更安全),首次登录设置强密码。
- 创建用户与目录权限
- 用户管理:Edit → Users → Add,设置用户名/密码。
- 共享目录:Edit → Users → Shared folders → Add,选择目录;在右侧勾选权限(文件:Read/Write/Delete/Append;目录:List/Create/Delete/…)。
- 被动模式与加密
- Edit → Settings → Passive mode settings:勾选 “Use custom port range”,如 50000-50010;若服务器在 NAT 后,填写公网 IP 或启用自动获取;建议启用 SSL/TLS 强制加密。
- 防火墙与云安全组
- 放行 21(FTP 控制)与 50000-50010(PASV 数据);云主机需同步安全组规则。
- 客户端连接测试
- 协议:FTP/FTPS;主机:服务器公网/内网 IP;端口:21;登录:新建的用户/密码。
四 权限模型与最佳实践
- 最小权限原则:普通用户仅授予所需权限(如下载目录只读,上传目录仅写/追加);敏感目录禁止匿名或普通用户访问。
- 目录隔离:按业务/项目划分目录,分别赋权;必要时用组(vsftpd 可用本地组)统一策略。
- 日志与审计:启用服务器日志,定期审计登录与文件操作;异常行为及时告警。
- 加密传输:优先使用 SFTP 或 FTPS,避免明文 FTP 泄露凭据与数据。
- 备份与变更管理:定期备份用户与目录权限配置(vsftpd 侧重系统账号与目录权限;FileZilla Server 可导出设置/配置 XML)。