在 Linux 上搭建 FTP 服务器(常见如 vsftpd、ProFTPD、Pure-FTPd)时,“设权限”通常包含以下几个层面:
下面以 最常用的 vsftpd 为例说明,并补充通用思路。
useradd -m ftpuser
passwd ftpuser
mkdir -p /data/ftp
chown ftpuser:ftpuser /data/ftp
chmod 755 /data/ftp
755:用户可读写执行,其他人只读775 或 777(不推荐 777)anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
chroot_local_user=YES
allow_writeable_chroot=YES
重启服务:
systemctl restart vsftpd
chroot_local_user=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
chroot_list 中的用户 不被锁定
write_enable=NO
vsftpd 本身不支持“禁止删除但允许上传”,可通过:
/etc/vsftpd/virtual/
├── user1
└── user2
每个用户单独配置:
guest_enable=YES
guest_username=ftpvuser
user_config_dir=/etc/vsftpd/virtual
user1 文件:
local_root=/data/ftp/user1
write_enable=YES
user2 文件:
local_root=/data/ftp/user2
write_enable=NO
setfacl -m u:ftpuser:rwx /data/ftp/upload
setfacl -m u:ftpuser:r-x /data/ftp/download
setsebool -P ftp_home_dir on
setsebool -P allow_ftpd_full_access on
firewall-cmd --add-service=ftp --permanent
firewall-cmd --reload
| 软件 | 特点 |
|---|---|
| vsftpd | 安全、简单、主流 |
| ProFTPD | 类 Apache 配置,灵活 |
| Pure-FTPd | 虚拟用户方便 |
✅ 只能下载不能上传
✅ 不同用户不同目录
✅ 限制 IP 访问
✅ FTP + TLS 加密
如果你能告诉我:
我可以给你一份可直接用的配置文件。