下面按常见场景给你讲 Linux 下 vsftpd(Very Secure FTP Daemon) 的权限设置方法,从“能登录”到“细粒度控制”。
# CentOS / RHEL
yum install vsftpd -y
# Ubuntu / Debian
apt install vsftpd -y
/etc/vsftpd/vsftpd.conf # CentOS
/etc/vsftpd.conf # Ubuntu
修改后重启:
systemctl restart vsftpd
useradd ftpuser
passwd ftpuser
chroot_local_user=YES
allow_writeable_chroot=YES
这样用户登录后不能向上访问
/
write_enable=YES # 允许上传/删除
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
✅ 用户只能操作自己有权限的目录
# 用户密码文件
vim /etc/vsftpd/vusers.txt
内容:
user1
123456
user2
654321
db_load -T -t hash -f /etc/vsftpd/vusers.txt /etc/vsftpd/vusers.db
vim /etc/pam.d/vsftpd
内容:
auth required pam_userdb.so db=/etc/vsftpd/vusers
account required pam_userdb.so db=/etc/vsftpd/vusers
guest_enable=YES
guest_username=ftpuser
virtual_use_local_privs=YES
| 需求 | 配置 |
|---|---|
| 禁止匿名 | anonymous_enable=NO |
| 允许匿名只读 | anonymous_enable=YESanon_upload_enable=NO |
| 匿名可上传 | anon_upload_enable=YES |
| 限制用户不能出目录 | chroot_local_user=YES |
| 多用户不同目录 | 虚拟用户 + 子配置 |
tail -f /var/log/messages
# 或
journalctl -u vsftpd
如果你愿意,可以告诉我:
我可以直接给你一份可用配置文件。