温馨提示×

linux vsftp如何设权限

小樊
41
2026-10-21 08:15:08
栏目: 智能运维

在 Linux 下使用 vsftpd(Very Secure FTP Daemon) 设置权限,通常涉及系统用户权限、vsftpd 配置、目录权限三部分。下面按常见场景说明。


一、vsftpd 基本权限控制(配置文件)

vsftpd 主配置文件一般在:

/etc/vsftpd/vsftpd.conf

(部分系统为 /etc/vsftpd.conf)

1. 禁止匿名用户

anonymous_enable=NO

2. 允许本地用户登录

local_enable=YES

3. 控制是否可写

write_enable=YES      # 允许上传/删除

4. 限制用户只能在自己目录(推荐)

chroot_local_user=YES
allow_writeable_chroot=YES

不加 allow_writeable_chroot 可能导致无法登录


二、不同用户的 FTP 权限设置

场景 1:所有本地用户统一权限

只要系统用户能登录,FTP 权限由目录权限决定。

示例:

chmod 755 /home/user
chown user:user /home/user

场景 2:限制某些用户不能登录 FTP

使用用户列表:

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

在 /etc/vsftpd/user_list 中写用户名:

test1
test2

场景 3:只允许部分用户登录 FTP

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

三、虚拟用户权限(常用 & 安全)

1. 创建虚拟用户

useradd -d /home/ftp -s /sbin/nologin vuser

2. 配置 PAM

pam_service_name=vsftpd.virtual
guest_enable=YES
guest_username=vuser

3. 不同虚拟用户不同权限

user_config_dir=/etc/vsftpd/vuser_conf

示例:

/etc/vsftpd/vuser_conf/user1
local_root=/data/ftp/user1
write_enable=YES
anon_upload_enable=YES

四、目录权限示例(非常重要)

FTP 权限 = vsftpd 配置 + Linux 目录权限

chown -R vuser:vuser /data/ftp/user1
chmod 755 /data/ftp/user1

若用户需上传:

chmod 775 /data/ftp/user1/upload

五、SELinux 注意(CentOS/RHEL)

setsebool -P ftp_home_dir on
setsebool -P allow_ftpd_full_access on

查看:

getsebool -a | grep ftp

六、常用检查命令

systemctl restart vsftpd
systemctl status vsftpd
tail -f /var/log/vsftpd.log

总结(最简方案)

  • 想简单:本地用户 + chroot + 目录权限
  • 想安全:虚拟用户 + user_config_dir
  • 权限核心:vsftpd 控制“能不能”,Linux 权限控制“做什么”

如果你能说明:

  • 使用系统用户还是虚拟用户
  • 是否需要上传/删除
  • 是否要隔离目录

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

0 踩