温馨提示×

centos ftpserver怎样设权限

小樊
44
2026-09-03 00:17:23
栏目: 智能运维

在 CentOS 上搭建 FTP 服务器(常用 vsftpd),权限设置主要涉及系统用户权限、vsftpd 配置、目录权限、SELinux、防火墙等方面。下面按常见场景说明。


一、安装 vsftpd(如未安装)

yum install -y vsftpd
systemctl enable vsftpd
systemctl start vsftpd

二、FTP 用户类型与权限思路

1️⃣ 系统用户登录 FTP(最常见)

用户就是 Linux 用户,权限由目录权限 + vsftpd 配置决定。

useradd ftpuser
passwd ftpuser

默认家目录:

/home/ftpuser

设置目录权限

chown -R ftpuser:ftpuser /home/ftpuser
chmod 755 /home/ftpuser

✅ 用户只能访问自己的家目录(默认)


2️⃣ 限制用户只能访问家目录(推荐)

编辑:

vi /etc/vsftpd/vsftpd.conf

确保:

chroot_local_user=YES
allow_writeable_chroot=YES

重启:

systemctl restart vsftpd

⚠️ 不加 allow_writeable_chroot 可能登录失败


三、匿名用户权限(谨慎使用)

开启匿名

anonymous_enable=YES

匿名目录权限

/var/ftp
chown root:root /var/ftp
chmod 755 /var/ftp

允许匿名上传(不推荐)

anon_upload_enable=YES
anon_mkdir_write_enable=YES

目录需可写:

mkdir /var/ftp/pub
chown ftp:ftp /var/ftp/pub
chmod 777 /var/ftp/pub

四、写权限控制(上传 / 删除)

禁止所有写操作

write_enable=NO

允许写

write_enable=YES

五、SELinux 权限(非常重要)

CentOS 默认开启 SELinux,FTP 很容易受限制。

查看状态

getenforce

允许 FTP 访问家目录

setsebool -P ftp_home_dir on

允许匿名写

setsebool -P allow_ftpd_anon_write on

如果仍不行,可临时关闭测试

setenforce 0

(生产环境不建议长期关闭)


六、防火墙放行 FTP

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

如用被动模式,还需:

pasv_min_port=30000
pasv_max_port=31000

防火墙放行:

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

七、常见权限问题排查顺序

  1. 用户是否存在
  2. 目录属主是否正确
  3. vsftpd 是否限制 chroot
  4. write_enable 是否开启
  5. SELinux 是否阻止
  6. 防火墙是否放行

八、示例:只让 ftpuser 上传下载,不能切目录

local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
chown ftpuser:ftpuser /home/ftpuser
chmod 755 /home/ftpuser

如果你能告诉我:

  • CentOS 版本(7 / 8 / Stream)
  • FTP 用途(内部 / 对外 / 匿名)
  • 是否用虚拟用户

我可以给你一份针对性配置方案

0