在 Linux 上配置 FTP 服务器权限,主要取决于你用的是哪种 FTP 服务软件。最常见的是 vsftpd(Very Secure FTP Daemon)。下面以 vsftpd 为主,系统权限 + FTP 配置一起讲。
FTP 权限 = Linux 系统权限 + vsftpd 配置限制
# Debian / Ubuntu
apt install vsftpd
# CentOS / RHEL
yum install vsftpd
配置文件位置:
/etc/vsftpd.conf # Ubuntu
/etc/vsftpd/vsftpd.conf # CentOS
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
⚠️ 如果不加 allow_writeable_chroot=YES,家目录可写会报错
例如给用户 ftpuser 使用 /data/ftp
useradd -d /data/ftp ftpuser
passwd ftpuser
mkdir -p /data/ftp
chown ftpuser:ftpuser /data/ftp
chmod 755 /data/ftp
如需可上传:
chmod 775 /data/ftp
anonymous_enable=YES
anon_root=/var/ftp
write_enable=NO
目录权限:
chown root:root /var/ftp
chmod 755 /var/ftp
不直接用系统用户,更安全。
db_load 生成数据库vsftpd.conf 中指定权限示例:
guest_enable=YES
guest_username=ftpvuser
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/user_conf
如果登录正常但不能上传:
setsebool -P ftp_home_dir on
setsebool -P allow_ftpd_full_access on
或临时关闭测试:
setenforce 0
# passive mode
firewall-cmd --add-service=ftp --permanent
firewall-cmd --reload
✅ 用户是否能本地登录
✅ 目录属主是否正确
✅ vsftpd 是否允许 write
✅ 是否 chroot
✅ SELinux 是否拦截
如果你愿意,可以告诉我:
我可以直接给你一份 可用配置文件。