温馨提示×

CentOS下VSFTP权限如何设置

小樊
49
2025-10-25 20:59:53
栏目: 智能运维

CentOS下VSFTP权限设置详细步骤

1. 安装VSFTP

首先确保系统已安装VSFTP,若未安装可通过以下命令安装:

sudo yum install vsftpd -y

2. 启动并启用VSFTP服务

安装完成后,启动VSFTP服务并设置为开机自启:

sudo systemctl start vsftpd
sudo systemctl enable vsftpd

3. 配置VSFTP基础权限

编辑VSFTP主配置文件 /etc/vsftpd/vsftpd.conf,调整以下核心参数:

  • 允许本地用户登录local_enable=YES
  • 开启写入权限write_enable=YES(允许用户上传/修改文件)
  • 锁定用户至主目录(增强安全)chroot_local_user=YES
  • 允许chroot目录可写(若需用户上传文件至主目录):allow_writeable_chroot=YES
  • 禁用匿名访问(可选,根据需求):anonymous_enable=NO

保存并退出配置文件。

4. 创建FTP用户并设置主目录权限

  • 创建用户及主目录
    sudo useradd -m ftpuser  # 创建用户并自动生成主目录(/home/ftpuser)
    sudo passwd ftpuser      # 设置用户密码
    
  • 调整主目录所有权与权限
    sudo chown ftpuser:ftpuser /home/ftpuser  # 将主目录所有者设为用户自身
    sudo chmod 755 /home/ftpuser            # 设置主目录权限(所有者可读写执行,其他用户仅读执行)
    

注意:若需用户上传文件至主目录,需确保主目录权限至少为755drwxr-xr-x)。

5. 处理SELinux上下文(若SELinux启用)

若系统SELinux处于Enforcing模式(默认),需调整FTP相关SELinux策略:

  • 允许用户访问主目录
    sudo setsebool -P ftp_home_dir on
    
  • 设置FTP目录上下文(可选,针对特定FTP目录):
    sudo chcon -Rv --type=ftp_home_t /home/ftpuser
    

提示:若需彻底禁用SELinux对FTP的限制(不推荐),可编辑/etc/selinux/config文件,将SELINUX=enforcing改为SELINUX=disabled,但需重启系统生效。

6. 配置防火墙允许FTP流量

若系统使用firewalld防火墙,需开放FTP服务端口(默认21):

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

注意:若使用iptables,需添加规则允许21端口及被动模式端口范围(需在VSFTP配置中指定)。

7. 细粒度权限控制(可选)

  • 限制用户至主目录:通过chroot_local_user=YES已实现,若需允许特定用户突破限制,可将用户名添加至/etc/vsftpd/user_list,并在配置文件中设置userlist_deny=NO
  • 设置用户配额:若需限制用户磁盘空间,可安装quota工具:
    sudo yum install quota -y
    sudo quotacheck -cum /home  # 初始化配额
    sudo quotaon -v /home       # 开启配额
    sudo edquota -u ftpuser     # 编辑用户配额(设置软限制/硬限制)
    

8. 重启服务并验证

完成所有配置后,重启VSFTP服务使更改生效:

sudo systemctl restart vsftpd

使用FTP客户端(如FileZilla)连接服务器,验证用户能否正常登录、上传/下载文件。

以上步骤覆盖了CentOS下VSFTP的基础权限设置及常见场景需求,可根据实际环境调整参数(如被动模式端口、虚拟用户等)。

0