温馨提示×

centos ftpserver如何设权限

小樊
56
2026-09-27 05:00:56
栏目: 智能运维

在 CentOS 上搭建 FTP 服务器(常用 vsftpd),“设权限”通常涉及 系统用户权限、目录权限、vsftpd 配置权限、SELinux 权限 四个方面。下面按常见场景给你一个清晰说明。


一、安装 vsftpd(如已装可跳过)

yum install -y vsftpd
systemctl enable vsftpd
systemctl start vsftpd

二、FTP 用户与系统权限设置

1️⃣ 创建 FTP 专用用户

useradd ftpuser -d /home/ftpuser -s /sbin/nologin
passwd ftpuser

说明:

  • -s /sbin/nologin:禁止 SSH 登录,仅用于 FTP
  • 可改为 /bin/bash 如果你允许 SSH

2️⃣ 设置目录权限(重点)

mkdir -p /home/ftpuser/upload
chown -R ftpuser:ftpuser /home/ftpuser
chmod 755 /home/ftpuser
chmod 775 /home/ftpuser/upload

常见权限说明:

权限 含义
755 owner 可写,其他只读
775 同组可写(常用于共享目录)
700 仅自己可访问

三、vsftpd 配置权限(核心)

配置文件位置

/etc/vsftpd/vsftpd.conf

基础权限配置示例

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022

说明:

  • write_enable=YES:允许上传
  • local_umask=022:上传文件权限 = 755

四、限制用户只能访问自己目录(推荐)

开启 chroot

chroot_local_user=YES
allow_writeable_chroot=YES

⚠️ 如果不开 allow_writeable_chroot,用户目录不可写会报错


五、SELinux 权限(CentOS 常见坑)

查看 SELinux 状态

getenforce

允许 FTP 写权限

setsebool -P ftp_home_dir on
setsebool -P allow_ftpd_full_access on

修改目录安全上下文(如自定义目录)

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

六、防火墙放行 FTP

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

七、常见权限场景速查

✅ 只允许下载

write_enable=NO

✅ 只允许某用户写

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

✅ 多用户共享目录

groupadd ftpgroup
usermod -aG ftpgroup user1
usermod -aG ftpgroup user2
chown -R :ftpgroup /shared
chmod 775 /shared

八、排错命令

tail -f /var/log/messages
journalctl -u vsftpd
ls -Z /home/ftpuser

如果你能告诉我:

  • 用的是 vsftpd / proftpd / pure-ftpd
  • 是 匿名 / 本地用户 / 虚拟用户
  • 想实现什么权限(只读 / 上传 / 隔离 / 共享)

我可以直接给你一套 可复制的配置方案。

0 踩