温馨提示×

linux vsftp怎样设权限

小樊
46
2026-10-27 07:55:23
栏目: 智能运维

下面按常见场景给你讲 Linux 下 vsftpd(Very Secure FTP Daemon) 的权限设置方法,从“能登录”到“细粒度控制”。


一、基础准备

1. 安装 vsftpd

# CentOS / RHEL
yum install vsftpd -y

# Ubuntu / Debian
apt install vsftpd -y

2. 配置文件位置

/etc/vsftpd/vsftpd.conf   # CentOS
/etc/vsftpd.conf          # Ubuntu

修改后重启:

systemctl restart vsftpd

二、最常用权限控制方式

✅ 方式 1:基于 Linux 系统用户(最常用)

1. 创建 FTP 用户

useradd ftpuser
passwd ftpuser

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

chroot_local_user=YES
allow_writeable_chroot=YES

这样用户登录后不能向上访问 /

3. 控制是否可写

write_enable=YES      # 允许上传/删除

✅ 方式 2:只读 / 只写控制

只读用户

write_enable=NO

只让某些用户可写

write_enable=YES
userlist_enable=YES
userlist_file=/etc/vsftpd/user_list
userlist_deny=NO

在 /etc/vsftpd/user_list 中只写允许写的用户


三、目录级权限(关键)

vsftpd 权限 = FTP配置 + Linux文件权限

# 给用户自己的目录
chown ftpuser:ftpuser /home/ftpuser
chmod 755 /home/ftpuser

# 可上传目录
mkdir /home/ftpuser/upload
chmod 755 /home/ftpuser/upload
chown ftpuser:ftpuser /home/ftpuser/upload

✅ 用户只能操作自己有权限的目录


四、虚拟用户(更安全,推荐生产用)

1. 建立虚拟用户

# 用户密码文件
vim /etc/vsftpd/vusers.txt

内容:

user1
123456
user2
654321

2. 生成数据库

db_load -T -t hash -f /etc/vsftpd/vusers.txt /etc/vsftpd/vusers.db

3. 配置 PAM

vim /etc/pam.d/vsftpd

内容:

auth required pam_userdb.so db=/etc/vsftpd/vusers
account required pam_userdb.so db=/etc/vsftpd/vusers

4. vsftpd.conf

guest_enable=YES
guest_username=ftpuser
virtual_use_local_privs=YES

五、常见权限场景速查

需求 配置
禁止匿名 anonymous_enable=NO
允许匿名只读 anonymous_enable=YES
anon_upload_enable=NO
匿名可上传 anon_upload_enable=YES
限制用户不能出目录 chroot_local_user=YES
多用户不同目录 虚拟用户 + 子配置

六、排错常用命令

tail -f /var/log/messages
# 或
journalctl -u vsftpd

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

  • ✅ 用的是 CentOS 还是 Ubuntu
  • ✅ 是 系统用户 / 虚拟用户
  • ✅ 想要 只读 / 只上传 / 多用户隔离

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

0 踩