温馨提示×

debian vsftp怎样权限

小樊
53
2026-09-14 02:56:05
栏目: 智能运维

在 Debian 上用 vsftpd 时,“权限”通常涉及 系统用户权限、目录权限、vsftpd 配置权限 三部分。下面按常见场景说明。


一、vsftpd 安装(Debian)

sudo apt update
sudo apt install vsftpd

配置文件位置:

/etc/vsftpd.conf

二、基本权限思路(很重要)

FTP 用户能不能读/写,取决于 两点同时成立:

  1. vsftpd 配置允许
  2. Linux 文件系统权限允许

三、常见权限配置方式

方式 1:系统用户登录(最常用)

允许用户用自己的 Linux 账号登录 FTP。

1️⃣ 创建用户

sudo adduser ftpuser

2️⃣ 设置家目录权限

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

用户对自己目录要有 写权限(7)

3️⃣ vsftpd 配置

编辑 /etc/vsftpd.conf:

local_enable=YES
write_enable=YES

重启服务:

sudo systemctl restart vsftpd

✅ 这样 ftpuser 可以上传/下载自己的文件


方式 2:限制用户只能访问家目录(推荐)

防止用户看到系统其他目录。

chroot_local_user=YES
allow_writeable_chroot=YES

Debian 新版必须加 allow_writeable_chroot=YES,否则无法写入


方式 3:匿名用户(不登录)

anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES

目录权限:

sudo chown ftp:ftp /srv/ftp
sudo chmod 755 /srv/ftp

⚠ 匿名写权限风险较大,生产环境不建议


四、虚拟用户(进阶,安全)

不创建系统用户,只用 FTP 账号。

常见方案:

  • PAM + db4
  • 每个虚拟用户映射到一个系统用户(如 ftpvuser)

简单示例:

guest_enable=YES
guest_username=ftpvuser
virtual_use_local_privs=YES

然后设置 /home/ftpvuser 权限即可。


五、常见权限错误排查

❌ 530 Login incorrect

  • 用户被禁止登录
  • 检查:
local_enable=YES
  • 用户 shell 是否为 /sbin/nologin(vsftpd 默认不允许)

❌ 550 Permission denied

  • 写权限没开
write_enable=YES
  • 目录权限不足(chmod / chown)

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

加:

allow_writeable_chroot=YES

六、推荐安全权限模板

listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
userlist_enable=YES

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

  • 是 系统用户 / 匿名 / 虚拟用户
  • 需要 只读 / 只上传 / 限制目录
  • Debian 版本(11 / 12)

我可以直接帮你写一份 完整 vsftpd.conf + 权限命令。

0 踩