FileZilla在Ubuntu上如何限制访问权限
导读:在 Ubuntu 上限制 FileZilla 的访问权限 一、先明确限制对象与协议 FileZilla 是客户端,真正的“权限”由服务器决定。常见服务器有两类: vsftpd(FTP/FTPS):通过系统用户、目录权限与 chroot...
在 Ubuntu 上限制 FileZilla 的访问权限
一、先明确限制对象与协议
- FileZilla 是客户端,真正的“权限”由服务器决定。常见服务器有两类:
- vsftpd(FTP/FTPS):通过系统用户、目录权限与 chroot 控制访问。
- OpenSSH/SFTP:通过系统用户、用户组与文件系统权限控制访问。
- 客户端侧建议:仅保存站点、启用TLS/SSL或SFTP、必要时使用受限系统账号与仅读权限连接,避免以 root 直连。
二、使用 vsftpd 时的权限限制(FTP/FTPS)
- 安装与基础安全
- 安装:
sudo apt update & & sudo apt install vsftpd - 建议:禁止匿名、仅允许本地用户、按需开启写入
- 配置示例(/etc/vsftpd.conf):
anonymous_enable=NOlocal_enable=YESwrite_enable=NO(只读场景;需要上传再改为 YES)xferlog_enable=YES、connect_from_port_20=YES
- 配置示例(/etc/vsftpd.conf):
- 安装:
- 将用户限制在其主目录(chroot)
- 方案A(全局限制):
chroot_local_user=YES- 为规避 vsftpd 的“可写根目录”安全检查,使用:
allow_writeable_chroot=YES
- 方案B(白名单/黑名单):
chroot_list_enable=YESchroot_list_file=/etc/vsftpd.chroot_list- 在
/etc/vsftpd.chroot_list中逐行写入需要限制的用户名
- 方案A(全局限制):
- 目录权限与所有权
- 典型只读主目录:
sudo chown ftpuser:ftpuser /home/ftpuser & & sudo chmod 755 /home/ftpuser - 需要上传时再放宽到 775/700(谨慎授予组与其他人写权限)
- 典型只读主目录:
- 重启与验证
sudo systemctl restart vsftpd & & sudo systemctl status vsftpd- 客户端用 FileZilla 连接,协议选 FTP - Explicit TLS,验证仅能访问指定目录。
三、使用 OpenSSH/SFTP 时的权限限制(推荐更安全的方案)
- 准备系统用户与目录
- 新建只读用户:
sudo adduser --shell /usr/sbin/nologin --home /srv/ftp/readonly ftpuser - 只读共享目录:
sudo mkdir -p /srv/ftp/readonly & & sudo chown ftpuser:ftpuser /srv/ftp/readonly & & sudo chmod 755 /srv/ftp/readonly
- 新建只读用户:
- 按需细化权限
- 只读:
chmod 755 /srv/ftp/readonly,文件644 - 可写:
chmod 775 /srv/ftp/readonly,必要时将用户加入同组并设setgid保持子目录属组一致
- 只读:
- 客户端连接
- FileZilla 站点管理:协议选 SFTP,主机填服务器 IP,登录类型选“正常”,用户填 ftpuser,密码或密钥登录
- 由于 SFTP 基于 SSH,系统层面的用户、组与目录权限即最终权限边界
四、按用户或网段进一步限制
- 仅允许特定用户登录
- vsftpd:
userlist_enable=YES、userlist_deny=NO、userlist_file=/etc/vsftpd.user_list,在列表中写入允许的用户
- vsftpd:
- 仅允许特定 IP 访问
- 启用 TCP Wrappers:
sudo nano /etc/hosts.allow写入vsftpd: 192.168.1.0/24 203.0.113.10 /etc/hosts.deny写入vsftpd: ALL
- 启用 TCP Wrappers:
- 防火墙与被动端口(FTP)
- 放行控制端口:
sudo ufw allow 21/tcp - 若启用被动模式,配置端口范围(如 50000–50009)并放行:
sudo ufw allow 50000:50009/tcp - 注意:SFTP 使用 22/TCP,无需额外数据端口范围。
- 放行控制端口:
五、常见问题与排错要点
- 出现 “500 OOPS: vsftpd: refusing to run with writable root inside chroot()”
- 在启用
chroot_local_user=YES时,添加allow_writeable_chroot=YES,或将用户根目录设为不可写(更推荐做法:根目录只读,给用户一个可写的子目录,如upload/,权限 775/755 视需求设置)。
- 在启用
- 登录后目录为空或无法列目录
- 检查用户家目录与共享目录的所有者/权限与SELinux/AppArmor上下文;确保目录对 FTP 用户可读(列目录)或可写(上传)。
- 被动模式连接失败
- 确认服务器防火墙与云安全组已放行 21/TCP 与被动端口范围;客户端在站点设置里启用被动模式。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: FileZilla在Ubuntu上如何限制访问权限
本文地址: https://pptw.com/jishu/774780.html
