温馨提示×

linux ftpserver配置啥权限

小樊
54
2026-09-29 08:42:35
栏目: 智能运维

在 Linux 上配置 FTP 服务器权限,通常取决于你用的是哪种 FTP 服务软件(最常见的是 vsftpd)。下面以 vsftpd(最常用) 为例,系统讲一下“该配哪些权限”。


一、FTP 用户类型与权限模型

1️⃣ 匿名用户(anonymous)

适合公开下载,不建议有写权限

anonymous_enable=YES
anon_upload_enable=NO
anon_mkdir_write_enable=NO

如果非要开匿名上传(不安全):

anon_upload_enable=YES
anon_mkdir_write_enable=YES

⚠️ 目录还要给 ftp 用户写权限(不推荐)


2️⃣ 系统本地用户(local user)

最常见的 FTP 登录方式

local_enable=YES
write_enable=YES

限制用户只能访问自己家目录(重要安全项)

chroot_local_user=YES
allow_writeable_chroot=YES

二、Linux 文件系统权限(关键)

FTP 权限 = FTP配置权限 + Linux文件权限

示例

用户 ftpuser 上传到 /home/ftpuser/upload

chown ftpuser:ftpuser /home/ftpuser/upload
chmod 755 /home/ftpuser
chmod 775 /home/ftpuser/upload

常见错误:

  • FTP 报 550 Permission denied
  • 原因:目录不可写 or 被 chroot 但目录可写(旧版 vsftpd)

三、SELinux 权限(很多人忽略)

如果开启 SELinux:

getenforce

若为 Enforcing,需放行 FTP:

setsebool -P ftp_home_dir on
setsebool -P allow_ftpd_full_access on

或临时关闭(不推荐):

setenforce 0

四、防火墙端口权限

主动模式

firewall-cmd --add-port=21/tcp --permanent

被动模式(推荐)

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

五、推荐安全权限配置(生产环境)

anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
pasv_enable=YES

六、常见权限问题速查

现象 原因
无法登录 用户被 shell 限制(/sbin/nologin)
不能上传 write_enable=NO
550 错误 目录无写权限
530 错误 密码错 / PAM 限制
列表慢 被动端口未开

如果你能告诉我:

  • 用的 哪个 FTP 软件(vsftpd / proftpd / pure-ftpd)
  • 是 匿名 / 用户 / 虚拟用户
  • 想实现什么(只读 / 上传 / 多用户隔离)

我可以给你一套可直接用的配置文件。

0 踩