温馨提示×

debian vsftp怎样设权限

小樊
50
2026-09-20 05:51:05
栏目: 智能运维

在 Debian 上使用 vsftpd(Very Secure FTP Daemon) 时,权限设置主要涉及 系统用户权限、vsftpd 配置、目录权限 三个方面。下面按常见需求给你一个清晰说明。


一、安装 vsftpd(如未安装)

sudo apt update
sudo apt install vsftpd

配置文件位置:

/etc/vsftpd.conf

二、vsftpd 常见权限相关配置

编辑配置:

sudo nano /etc/vsftpd.conf

1️⃣ 允许/禁止匿名访问

anonymous_enable=NO      # 禁止匿名(推荐)

2️⃣ 允许本地用户登录(系统用户)

local_enable=YES

3️⃣ 是否允许上传(写权限)

write_enable=YES

4️⃣ 限制用户只能访问自己的目录(重要)

chroot_local_user=YES
allow_writeable_chroot=YES

⚠️ 不加 allow_writeable_chroot=YES,用户主目录可写时会登录失败。


三、用户与目录权限设置(核心)

示例:创建一个 FTP 专用用户

sudo useradd -m ftpuser
sudo passwd ftpuser

设置目录权限

假设 FTP 根目录为 /home/ftpuser:

sudo chown ftpuser:ftpuser /home/ftpuser
sudo chmod 755 /home/ftpuser

如果用户需要上传文件:

sudo chmod 775 /home/ftpuser

四、不同权限需求示例

✅ 只读用户(不能上传)

write_enable=NO

或目录设为:

chmod 555 /home/ftpuser

✅ 仅允许特定用户登录

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

在文件中加入允许的用户:

echo ftpuser | sudo tee -a /etc/vsftpd.userlist

✅ 虚拟用户(高级,多用户单系统账号)

一般用 pam + db4,适合大量 FTP 用户。如果你需要,我可以单独写一套配置。


五、SELinux / 防火墙(Debian 通常不用 SELinux)

sudo ufw allow 20/tcp
sudo ufw allow 21/tcp

如用被动模式(推荐):

pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000

并开放端口:

sudo ufw allow 30000:31000/tcp

六、重启 vsftpd

sudo systemctl restart vsftpd
sudo systemctl enable vsftpd

七、常见错误

  • 530 Login incorrect → 用户被限制或 PAM 问题
  • 500 OOPS: vsftpd: refusing to run with writable root → 加 allow_writeable_chroot=YES
  • 无法上传 → 检查 write_enable 和目录权限

如果你能告诉我:

  • 是 系统用户还是虚拟用户
  • 需要 只读 / 上传 / 多用户隔离

我可以直接给你一份 完整可用配置。

0 踩