温馨提示×

linux ftpserver权限如何设

小樊
37
2026-09-08 05:54:23
栏目: 智能运维

在 Linux 下搭建 FTP Server(如 vsftpd) 时,权限设置通常包含 系统用户权限、目录权限、FTP 配置权限、SELinux/防火墙 几个方面。下面用最常见的 vsftpd 为例说明。


一、FTP 用户与系统权限

1. 创建 FTP 用户

useradd -m ftpuser
passwd ftpuser

2. 限定用户只能 FTP,不能登录系统(可选)

usermod -s /sbin/nologin ftpuser

二、目录权限设置(重点)

FTP 权限本质是 Linux 文件权限

示例目录

/var/ftp/upload

设置属主和权限

chown ftpuser:ftpuser /var/ftp/upload
chmod 755 /var/ftp
chmod 775 /var/ftp/upload

说明:

  • 7 = 读+写+执行(目录的执行=进入)
  • 上传目录一般给 775777(不推荐 777)

⚠️ 注意
FTP 用户对其主目录 不能有写权限(vsftpd 安全限制)

/home/ftpuser   -> 755
/home/ftpuser/upload -> 775

三、vsftpd 关键权限配置

编辑配置文件:

vim /etc/vsftpd/vsftpd.conf

1. 允许本地用户登录

local_enable=YES

2. 允许写入(上传)

write_enable=YES

3. 限制用户在主目录(推荐)

chroot_local_user=YES
allow_writeable_chroot=YES

4. 匿名用户权限(如不需要建议关闭)

anonymous_enable=NO

5. 限制可登录用户(白名单)

userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list

四、SELinux 权限(CentOS / RHEL)

查看状态:

getenforce

如果是 Enforcing,需设置:

setsebool -P ftpd_full_access on
setsebool -P ftp_home_dir on

目录打标签:

semanage fcontext -a -t public_content_rw_t "/var/ftp/upload(/.*)?"
restorecon -Rv /var/ftp/upload

五、防火墙

firewall-cmd --add-service=ftp --permanent
firewall-cmd --reload

六、常见权限问题排查

现象 原因
530 Login incorrect 用户被禁 / shell 不对
550 Permission denied 目录无写权限
500 OOPS chroot 主目录有写权限
上传失败 SELinux 未开

七、最小安全权限建议

  • ✅ 不用匿名
  • ✅ chroot 限制
  • ✅ 专用 FTP 用户
  • ✅ 上传目录单独建
  • ❌ 不给 777

如果你用的是 ProFTPD / Pure-FTPd,或想做 虚拟用户 + 配额,可以告诉我,我给你对应方案。

0