在 Linux 上搭建 FTP 服务器(如 vsftpd) 时,“权限”通常涉及 系统用户权限、FTP 目录权限、FTP 配置权限 三个方面。下面以最常见的 vsftpd 为例,系统讲一下。
useradd -m ftpuser
passwd ftpuser
限制用户只能 FTP,不能登录 shell:
usermod -s /sbin/nologin ftpuser
/var/ftp/
└── upload/
chown -R ftpuser:ftpuser /var/ftp/upload
chmod 755 /var/ftp
chmod 775 /var/ftp/upload
常见权限说明:
755:所有者可写,其他只读775:组可写777:⚠️ 不推荐(安全隐患)编辑配置文件:
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
# 允许上传
write_enable=YES
# 允许删除/重命名
delete_enable=YES
# 允许创建目录
mkdir_upload=YES
chroot_local_user=YES
allow_writeable_chroot=YES
⚠️ 不加 allow_writeable_chroot 可能导致登录失败
guest_enable=YES
guest_username=ftpuser
virtual_use_local_privs=YES
查看状态:
getenforce
临时关闭:
setenforce 0
永久允许 FTP:
setsebool -P ftpd_full_access on
firewall-cmd --add-service=ftp --permanent
firewall-cmd --reload
| 问题 | 原因 |
|---|---|
| 530 Login incorrect | 用户被禁或 shell 错误 |
| 550 Permission denied | write_enable=NO |
| 500 OOPS chroot | 家目录权限不对 |
| 不能上传 | 目录无写权限 |
/var/ftp (root:root, 755)
/var/ftp/upload (ftpuser:ftpuser, 755)
如果你用的是 ProFTPD / Pure-FTPd,或者想要:
可以告诉我你的 FTP 软件 + 使用场景,我可以给你具体配置。