温馨提示×

linux filezilla为何报权限错

小樊
35
2026-10-24 05:33:43
栏目: 智能运维

在 Linux 下使用 FileZilla 报“权限错误(Permission denied)”,通常不是 FileZilla 本身的问题,而是服务器文件系统权限 / FTP 服务配置 / 用户身份导致的。下面按常见原因逐一说明:


一、最常见原因

1️⃣ 登录用户对目录没有写权限

例如:

  • 用 ftp 用户登录
  • 但目标目录属于 www 或 root

错误示例:

550 Permission denied

✅ 解决:

# 查看目录权限
ls -ld /var/www/html

# 修改拥有者(示例)
chown -R ftpuser:ftpuser /var/www/html

# 或修改权限
chmod -R 755 /var/www/html

2️⃣ 使用的是 SFTP(SSH),但用户被限制

如果你连的是 SFTP(端口 22):

  • 用户被 chroot 限制
  • 家目录不可写
  • 使用的是普通用户但试图写系统目录

✅ 检查:

getent passwd ftpuser
# 看家目录

✅ 修复示例:

chown root:root /home/ftpuser
chmod 755 /home/ftpuser
mkdir /home/ftpuser/upload
chown ftpuser:ftpuser /home/ftpuser/upload

3️⃣ vsftpd 限制了写权限

如果你用的是 vsftpd:

默认可能禁止写操作。

✅ 检查配置:

cat /etc/vsftpd.conf | grep -E "write_enable|chroot"

✅ 确保有:

write_enable=YES

然后重启:

systemctl restart vsftpd

4️⃣ SELinux 拦截(非常常见但容易被忽略)

即使权限是对的,SELinux 也可能阻止 FTP 写文件。

✅ 检查:

getenforce

✅ 临时测试:

setenforce 0

✅ 永久允许 FTP:

setsebool -P ftpd_full_access on

5️⃣ 被动模式(PASV)端口未开放

表现为:

  • 能登录
  • 列目录或上传时报权限/超时

✅ vsftpd 配置示例:

pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000

并开放防火墙:

firewall-cmd --add-port=30000-31000/tcp --permanent
firewall-cmd --reload

6️⃣ 上传到只读文件系统

例如:

  • 挂载了 ro
  • Docker 卷只读

✅ 检查:

mount | grep "on /目标目录"

二、快速排查建议(按顺序)

  1. 看 FileZilla 完整错误日志
  2. 确认是 FTP 还是 SFTP
  3. 登录服务器,用同一用户手动写文件测试
  4. 检查权限 + 拥有者 + SELinux

三、你可以贴这些信息,我能精确定位

如果你愿意,可以发:

  • FileZilla 报错原文
  • 使用的是 FTP / SFTP
  • 服务器端系统(CentOS / Ubuntu)
  • FTP 服务(vsftpd / proftpd / ssh)

我可以直接帮你改配置。

0 踩