温馨提示×

Debian FTPServer如何设权限

小樊
41
2026-08-06 08:42:12
栏目: 智能运维

在 Debian 上配置 FTP 服务器权限,常见的是使用 vsftpd(最常用、稳定)。下面按常见场景给你一个完整、可落地的配置说明。


一、安装 vsftpd

sudo apt update
sudo apt install vsftpd

二、基本权限控制(核心)

1️⃣ 禁止匿名登录(推荐)

编辑配置文件:

sudo nano /etc/vsftpd.conf

确认或修改为:

anonymous_enable=NO

2️⃣ 允许本地用户登录

local_enable=YES

3️⃣ 控制“写权限”

✅ 允许上传 / 创建目录

write_enable=YES

⚠️ 前提:Linux 文件系统权限也要允许写


三、用户权限控制(重点)

场景 1:用户只能访问自己的家目录(推荐)

开启 chroot

chroot_local_user=YES
allow_writeable_chroot=YES

这样用户登录后 不能切换到 / 以外目录


场景 2:只允许部分用户登录 FTP

userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO

然后在文件中添加允许的用户:

sudo nano /etc/vsftpd.userlist
alice
bob

场景 3:禁止某些用户登录

userlist_deny=YES

四、目录权限设置(非常关键)

FTP 权限 = vsftpd 配置 + Linux 文件权限

示例:用户只能上传到自己的目录

sudo mkdir -p /home/ftpuser/upload
sudo chown ftpuser:ftpuser /home/ftpuser/upload
sudo chmod 755 /home/ftpuser
sudo chmod 775 /home/ftpuser/upload

解释:

目录 权限
家目录 755(不可写)
upload 775(可写)

✅ 防止用户在家目录乱删文件


五、被动模式(推荐开启)

pasv_enable=YES
pasv_min_port=40000
pasv_max_port=50000

防火墙放行:

sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 40000:50000/tcp

六、SELinux(Debian 一般不用)

Debian 默认没有 SELinux,如果你用的是 Ubuntu/Debian,可忽略。


七、重启服务

sudo systemctl restart vsftpd
sudo systemctl enable vsftpd

八、常见权限问题排查

❌ 530 Login incorrect

  • 用户被禁止登录
  • /etc/ftpusers 中限制了用户
sudo nano /etc/ftpusers

❌ 553 Could not create file

  • write_enable=NO
  • 目录没有写权限

❌ 500 OOPS: vsftpd: refusing to run with writable root

  • 家目录可写但没加:
allow_writeable_chroot=YES

九、示例:安全 FTP 用户配置(推荐)

anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=50000

十、如果你用的是其他 FTP 服务

FTP 服务 说明
vsftpd ✅ 推荐
proftpd 配置更像 Apache
pure-ftpd 权限控制更细

如果你愿意,可以告诉我:

  • ✅ 是 本地用户 还是 虚拟用户
  • ✅ 是否需要 Web 目录上传
  • ✅ 是否要 只读 / 只写 / 读写

我可以给你一份完全符合你需求的配置模板

0