温馨提示×

CentOS上VSFTP权限如何设置

小樊
46
2025-10-19 14:40:45
栏目: 智能运维

CentOS上VSFTP权限设置详细步骤

1. 安装VSFTP

首先确保系统已更新,然后安装VSFTP服务:

sudo yum update -y sudo yum install vsftpd -y 

2. 启动并启用VSFTP服务

启动VSFTP服务并设置为开机自启:

sudo systemctl start vsftpd sudo systemctl enable vsftpd 

3. 配置基础权限(修改vsftpd.conf

编辑VSFTP主配置文件/etc/vsftpd/vsftpd.conf,设置以下关键参数:

sudo vim /etc/vsftpd/vsftpd.conf 
  • 禁用匿名访问(提升安全性):
    anonymous_enable=NO 
  • 允许本地用户登录
    local_enable=YES 
  • 开启写入权限(允许用户上传/修改文件):
    write_enable=YES 
  • 设置本地用户文件掩码(默认创建文件权限为644,目录为755):
    local_umask=022 
  • 限制用户至主目录(chroot jail)(增强安全性,防止访问系统其他目录):
    chroot_local_user=YES allow_writeable_chroot=YES # 允许chroot目录可写(若用户主目录需要写入) 
  • 可选:限制用户列表(仅允许/etc/vsftpd/user_list中的用户登录):
    userlist_enable=YES userlist_file=/etc/vsftpd/user_list userlist_deny=NO # 允许列表中的用户登录 

4. 设置用户主目录权限

确保用户主目录权限正确(通常为755),且所有者为用户自身:

# 创建用户(示例:ftpuser) sudo useradd -m ftpuser sudo passwd ftpuser # 设置主目录权限 sudo chown ftpuser:ftpuser /home/ftpuser sudo chmod 755 /home/ftpuser 

若用户需要上传文件到子目录(如uploads),需额外设置子目录权限:

sudo mkdir -p /home/ftpuser/uploads sudo chown ftpuser:ftpuser /home/ftpuser/uploads sudo chmod 775 /home/ftpuser/uploads # 允许用户写入 

5. 配置SELinux上下文(若启用SELinux)

若SELinux处于enforcing模式,需调整FTP目录的SELinux上下文,允许FTP访问:

# 设置用户主目录的SELinux上下文(类似httpd内容) sudo chcon -Rv --type=httpd_sys_content_t /home/ftpuser # 若需要上传文件,添加写入权限 sudo chcon -Rv --type=httpd_sys_rw_content_t /home/ftpuser/uploads 

6. 配置防火墙

允许FTP流量(默认端口21)通过防火墙:

sudo firewall-cmd --permanent --add-service=ftp sudo firewall-cmd --reload 

7. 重启VSFTP服务

应用所有配置更改:

sudo systemctl restart vsftpd 

8. 可选:高级权限控制(虚拟用户)

若需要更细粒度的权限(如限制特定用户只能访问特定目录),可创建虚拟用户:

# 创建虚拟用户文件(格式:用户名 密码) sudo vim /etc/vsftpd/virtual_users.txt # 示例内容: ftp_virtual user1pass ftp_virtual2 user2pass # 生成数据库文件 sudo db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db sudo chmod 600 /etc/vsftpd/virtual_users.db # 配置PAM认证(编辑/etc/pam.d/vsftpd) sudo vim /etc/pam.d/vsftpd # 注释原有内容,添加以下两行: auth required pam_userdb.so db=/etc/vsftpd/virtual_users account required pam_userdb.so db=/etc/vsftpd/virtual_users # 配置VSFTP虚拟用户 sudo vim /etc/vsftpd/vsftpd.conf # 添加以下内容: guest_enable=YES guest_username=ftpuser # 虚拟用户映射的系统用户 virtual_use_local_privs=YES user_sub_token=$USER local_root=/home/$USER # 虚拟用户主目录 chroot_local_user=YES allow_writeable_chroot=YES # 重启服务 sudo systemctl restart vsftpd 

通过以上步骤,可完成CentOS上VSFTP的基础权限设置。根据实际需求调整vsftpd.conf中的参数(如chrootuserlist等),即可实现不同用户的权限控制。

0