温馨提示×

ubuntu vsftp怎样设权限

小樊
34
2026-10-18 20:03:18
栏目: 智能运维

在 Ubuntu 上使用 vsftpd(Very Secure FTP Daemon) 时,权限设置主要涉及 系统用户权限、vsftpd 配置、目录权限 三个方面。下面按常见场景说明。


一、安装 vsftpd(如未安装)

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 # 允许匿名

匿名用户目录权限示例:

sudo chown nobody:nogroup /srv/ftp
sudo chmod 555 /srv/ftp

三、本地用户 FTP 权限(最常用)

1️⃣ 允许本地用户登录

local_enable=YES
write_enable=YES

2️⃣ 限制用户只能在自己家目录(推荐)

chroot_local_user=YES
allow_writeable_chroot=YES

⚠️ 如果不加 allow_writeable_chroot=YES,用户家目录不能有写权限,否则登录失败。


四、用户目录权限设置(关键)

假设用户是 ftpuser,家目录是 /home/ftpuser

sudo useradd -m ftpuser
sudo passwd ftpuser

设置目录权限:

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

如需上传目录:

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

五、限制某些用户不能登录 FTP

方法 1:使用 ftpusers(禁止登录)

sudo nano /etc/ftpusers

加入用户名(如 root)

方法 2:使用 user_list

userlist_enable=YES
userlist_deny=YES     # 列表中的用户禁止
# userlist_deny=NO   # 仅列表中的用户允许
sudo nano /etc/vsftpd.user_list

六、虚拟用户(高级,多用户隔离)

适合多个 FTP 账号但不需要系统账号:

  1. 创建虚拟用户数据库(PAM)
  2. 每个虚拟用户映射到一个系统用户
  3. 配置 guest_enable=YES

如需要我可以单独写一篇 vsftpd 虚拟用户配置教程。


七、重启 vsftpd

sudo systemctl restart vsftpd
sudo systemctl enable vsftpd

八、常见问题速查

问题 解决
530 Login incorrect 检查用户名密码、PAM
500 OOPS chroot 加 allow_writeable_chroot=YES
无法上传 write_enable=YES
权限拒绝 检查目录 owner / chmod

如果你能告诉我:

  • 是 匿名 / 本地用户 / 虚拟用户
  • 是否要 只读 / 只上传 / 多用户隔离

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

0 踩