在 Linux 上配置 FTP 服务器权限,通常取决于你用的是哪种 FTP 服务软件(最常见的是 vsftpd)。下面以 vsftpd(最常用) 为例,系统讲一下“该配哪些权限”。
适合公开下载,不建议有写权限
anonymous_enable=YES
anon_upload_enable=NO
anon_mkdir_write_enable=NO
如果非要开匿名上传(不安全):
anon_upload_enable=YES
anon_mkdir_write_enable=YES
⚠️ 目录还要给 ftp 用户写权限(不推荐)
最常见的 FTP 登录方式
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
FTP 权限 = FTP配置权限 + Linux文件权限
用户 ftpuser 上传到 /home/ftpuser/upload
chown ftpuser:ftpuser /home/ftpuser/upload
chmod 755 /home/ftpuser
chmod 775 /home/ftpuser/upload
常见错误:
550 Permission denied如果开启 SELinux:
getenforce
若为 Enforcing,需放行 FTP:
setsebool -P ftp_home_dir on
setsebool -P allow_ftpd_full_access on
或临时关闭(不推荐):
setenforce 0
firewall-cmd --add-port=21/tcp --permanent
pasv_min_port=30000
pasv_max_port=31000
firewall-cmd --add-port=30000-31000/tcp --permanent
firewall-cmd --reload
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
pasv_enable=YES
| 现象 | 原因 |
|---|---|
| 无法登录 | 用户被 shell 限制(/sbin/nologin) |
| 不能上传 | write_enable=NO |
| 550 错误 | 目录无写权限 |
| 530 错误 | 密码错 / PAM 限制 |
| 列表慢 | 被动端口未开 |
如果你能告诉我:
我可以给你一套可直接用的配置文件。