温馨提示×

ubuntu vsftp如何调权限

小樊
48
2026-10-10 02:04:55
栏目: 智能运维

在 Ubuntu 上使用 vsftpd(Very Secure FTP Daemon) 时,“调权限”通常包含 Linux 文件系统权限、vsftpd 配置权限 和 用户访问范围 三个方面。下面按常见场景给你一套实用做法。


一、先确认 vsftpd 已安装并运行

sudo apt update
sudo apt install vsftpd
sudo systemctl status vsftpd

配置文件位置:

/etc/vsftpd.conf

二、最常用的权限控制(vsftpd.conf)

编辑配置:

sudo nano /etc/vsftpd.conf

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

write_enable=YES

❗ 如果为 NO,任何用户都不能上传/删除。


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

anonymous_enable=NO

如果开匿名:

anon_upload_enable=YES
anon_mkdir_write_enable=YES

3️⃣ 本地用户(系统用户)权限

local_enable=YES

限制在家目录(强烈推荐):

chroot_local_user=YES
allow_writeable_chroot=YES

allow_writeable_chroot=YES 避免“500 OOPS: vsftpd: refusing to run with writable root inside chroot”


三、Linux 文件权限(最容易被忽略)

vsftpd 权限最终受 系统用户权限 控制。

示例:给用户 ftpuser 一个目录

sudo useradd -m ftpuser
sudo passwd ftpuser

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

常见权限说明:

  • 755:所有者可写,其他人只读
  • 775:组可写
  • 700:仅自己可访问

四、多用户共享目录(常见需求)

创建 FTP 用户组

sudo groupadd ftpgroup
sudo usermod -aG ftpgroup ftpuser

共享目录

sudo mkdir /srv/ftp/shared
sudo chown root:ftpgroup /srv/ftp/shared
sudo chmod 775 /srv/ftp/shared

用户登录后通过软链接或 chroot 指向该目录。


五、虚拟用户(高级但更安全)

如果你不想创建系统用户:

  1. 使用 pam + db_load
  2. 每个虚拟用户可单独配置权限
  3. 权限通过:
guest_enable=YES
guest_username=ftp
user_config_dir=/etc/vsftpd/user_conf

每个用户文件示例:

local_root=/srv/ftp/user1
write_enable=YES

六、改完配置一定要重启

sudo systemctl restart vsftpd

查看错误:

sudo journalctl -u vsftpd

七、常见权限问题速查

问题 原因
无法上传 write_enable=NO 或目录不可写
500 OOPS chroot 目录可写但未允许
登录被拒 local_enable=NO
权限不足 Linux 文件权限不对

如果你能告诉我:

  • ✅ 用的是 系统用户 / 匿名 / 虚拟用户
  • ✅ 想实现 只读 / 只上传 / 多用户共享
  • ✅ Ubuntu 版本

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

0 踩