温馨提示×

ubuntu vsftp怎么设权限

小樊
58
2026-09-25 11:21:52
栏目: 智能运维

在 Ubuntu 上使用 vsftpd 设置权限,通常涉及系统用户权限、vsftpd 配置、目录权限三个方面。下面按常见场景给你一套清晰做法。


一、安装 vsftpd

sudo apt update
sudo apt install vsftpd

二、核心配置文件

sudo nano /etc/vsftpd.conf

常用权限相关配置

# 禁止匿名登录
anonymous_enable=NO

# 允许本地用户登录
local_enable=YES

# 允许上传
write_enable=YES

# 用户只能访问自己的家目录(推荐)
chroot_local_user=YES

# 允许 chroot 目录可写(Ubuntu 新版必须)
allow_writeable_chroot=YES

# 被动模式(云服务器必开)
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000

保存后重启:

sudo systemctl restart vsftpd

三、用户与目录权限设置(重点)

1️⃣ 创建 FTP 用户

sudo useradd -m ftpuser
sudo passwd ftpuser

2️⃣ 设置 FTP 目录

sudo mkdir -p /home/ftpuser/ftp
sudo chown ftpuser:ftpuser /home/ftpuser/ftp
sudo chmod 755 /home/ftpuser

⚠️ 注意:

  • /home/ftpuser 不能有写权限(vsftpd 安全要求)
  • 真正可写目录是 ftp

四、常见权限场景

✅ 场景 1:用户只能访问自己目录

chroot_local_user=YES
allow_writeable_chroot=YES

✅ 场景 2:多个用户共享一个目录

sudo groupadd ftpgroup
sudo usermod -aG ftpgroup user1
sudo usermod -aG ftpgroup user2

sudo chown -R root:ftpgroup /srv/ftp
sudo chmod 775 /srv/ftp

✅ 场景 3:只读用户

sudo usermod -s /usr/sbin/nologin ftpuser

并在 vsftpd.conf:

write_enable=NO

五、防火墙(如果是云服务器)

sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 30000:31000/tcp

六、排错常用命令

sudo systemctl status vsftpd
sudo tail -f /var/log/vsftpd.log
ls -ld /home/ftpuser

七、一句话总结

vsftpd 权限 = 配置文件控制行为 + Linux 目录权限控制实际访问

如果你告诉我:

  • 是 云服务器还是本地
  • 要 单用户 / 多用户 / 匿名
  • 是否需要 web 目录(如 /var/www)

我可以给你一份精准配置。

0 踩