在 CentOS 上搭建 FTP 服务器(常用 vsftpd),“设权限”通常涉及 系统用户权限、目录权限、vsftpd 配置权限、SELinux 权限 四个方面。下面按常见场景给你一个清晰说明。
yum install -y vsftpd
systemctl enable vsftpd
systemctl start vsftpd
useradd ftpuser -d /home/ftpuser -s /sbin/nologin
passwd ftpuser
说明:
-s /sbin/nologin:禁止 SSH 登录,仅用于 FTP- 可改为
/bin/bash如果你允许 SSH
mkdir -p /home/ftpuser/upload
chown -R ftpuser:ftpuser /home/ftpuser
chmod 755 /home/ftpuser
chmod 775 /home/ftpuser/upload
常见权限说明:
| 权限 | 含义 |
|---|---|
| 755 | owner 可写,其他只读 |
| 775 | 同组可写(常用于共享目录) |
| 700 | 仅自己可访问 |
/etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
说明:
write_enable=YES:允许上传local_umask=022:上传文件权限 = 755chroot_local_user=YES
allow_writeable_chroot=YES
⚠️ 如果不开 allow_writeable_chroot,用户目录不可写会报错
getenforce
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
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
如果你能告诉我:
我可以直接给你一套 可复制的配置方案。