温馨提示×

debian vsftp权限怎么设

小樊
46
2026-09-17 03:15:32
栏目: 智能运维

在 Debian 上配置 vsftpd(Very Secure FTP Daemon) 的权限,通常涉及 系统用户权限、目录权限、vsftpd 配置参数 三部分。下面按常见使用场景说明。


一、安装 vsftpd(Debian)

sudo apt update
sudo apt install vsftpd

配置文件位置:

/etc/vsftpd.conf

二、基本权限控制(vsftpd.conf)

编辑配置:

sudo nano /etc/vsftpd.conf

1️⃣ 是否允许写操作

write_enable=YES

❗ 没有这一项,所有用户都不能上传/删除


2️⃣ 匿名用户权限(一般不推荐开)

anonymous_enable=NO

如果开匿名:

anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES

3️⃣ 本地用户 FTP 权限

local_enable=YES

✅ 允许系统用户登录 FTP


三、用户目录与 Linux 权限(关键)

vsftpd 最终权限 = vsftpd 配置 + Linux 文件权限

示例:给用户 ftpuser 一个 FTP 目录

sudo useradd -m ftpuser
sudo passwd ftpuser

sudo mkdir /home/ftpuser/ftp
sudo chown ftpuser:ftpuser /home/ftpuser/ftp
sudo chmod 755 /home/ftpuser/ftp
  • 755:用户可读写执行,其他人只读
  • 上传目录建议:
sudo chmod 775 /home/ftpuser/ftp/upload

四、限制用户只能访问自己的目录(推荐)

chroot 限制

chroot_local_user=YES
allow_writeable_chroot=YES

⚠ 如果只写 chroot_local_user=YES 而目录可写,会报错


五、多用户不同权限示例

场景 A:只读用户

sudo useradd readonly
sudo passwd readonly

目录:

sudo chown root:root /home/readonly
sudo chmod 755 /home/readonly

vsftpd:

write_enable=NO

场景 B:可上传但不能删除

cmds_allowed=USER,PASS,SYST,FEAT,OPTS,PORT,PASV,TYPE,CDUP,CWD,PWD,LIST,RETR,STOR,MKD

(去掉 DELE / RMD)


六、虚拟用户(高级,常用生产环境)

虚拟用户 不直接对应系统用户,权限更可控:

  • 使用 pam + db4
  • 每个虚拟用户可映射不同目录和权限

如果你需要,我可以单独写一份 Debian vsftpd 虚拟用户配置教程


七、常见问题

❌ 530 Login incorrect

  • 用户被 shell 限制
  • /etc/passwd 中 shell 不是 /bin/bash
  • PAM 配置错误

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

allow_writeable_chroot=YES

八、重启服务

sudo systemctl restart vsftpd
sudo systemctl enable vsftpd

如果你能告诉我:

  • 本地用户 / 匿名 / 虚拟用户
  • 是否需要 上传 / 删除 / 只能看
  • 是否是 公网服务器

我可以直接给你一份 可用的配置文件

0