温馨提示×

Ubuntu上vsftp用户权限如何设置

小樊
46
2025-10-01 14:34:05
栏目: 智能运维

Ubuntu上VSFTPD用户权限设置步骤

1. 安装VSFTPD

首先确保系统已安装VSFTPD,若未安装则执行以下命令:

sudo apt update
sudo apt install vsftpd

2. 配置基础权限(关键参数)

编辑VSFTPD主配置文件/etc/vsftpd.conf,调整以下核心参数以控制用户权限:

sudo nano /etc/vsftpd.conf
  • 允许本地用户登录:取消注释或添加local_enable=YES
  • 开启写入权限:取消注释或添加write_enable=YES(允许用户上传/修改文件);
  • 限制用户至主目录(chroot):取消注释或添加chroot_local_user=YES(将用户锁定在自家目录,提升安全性);
  • 允许chroot环境写入:添加allow_writeable_chroot=YES(若开启chroot,必须配置此项,否则用户无法在主目录中写入文件);
  • 设置umask(可选):添加local_umask=022(控制新创建文件的权限,默认755,即用户可读写执行,组和其他用户可读执行)。

注意:若需允许匿名用户访问,可设置anonymous_enable=YES,但出于安全考虑,建议生产环境禁用匿名登录。

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

  • 创建用户:使用adduser命令创建专用FTP用户(避免使用系统管理员账户):

    sudo adduser ftpuser
    

    按提示设置密码及其他信息(如全名、邮箱等)。

  • 限制用户Shell访问(可选但推荐):为增强安全性,禁止用户通过SSH登录,仅允许FTP访问:

    sudo usermod -s /sbin/nologin ftpuser
    
  • 设置主目录权限:确保用户主目录归属正确且权限开放:

    sudo chown -R ftpuser:ftpuser /home/ftpuser  # 将主目录所有者设为用户自身
    sudo chmod -R 755 /home/ftpuser             # 设置目录权限(所有者可读写执行,其他用户可读执行)
    

    若需创建子目录(如data)用于文件存储,可额外执行:

    sudo mkdir /home/ftpuser/data
    sudo chown ftpuser:ftpuser /home/ftpuser/data
    sudo chmod 755 /home/ftpuser/data
    

4. 高级权限配置(可选)

  • 限制可登录用户列表:若需仅允许特定用户访问,可通过user_list文件控制:

    • 编辑/etc/vsftpd.conf,添加:
      userlist_enable=YES
      userlist_file=/etc/vsftpd.user_list
      userlist_deny=NO  # 设为NO表示仅允许列表中的用户登录
      
    • 将允许登录的用户名逐行添加至/etc/vsftpd.user_list文件中。
  • 配置被动模式(解决防火墙问题):若服务器位于防火墙后,需开启被动模式并指定端口范围:

    sudo nano /etc/vsftpd.conf
    

    添加以下参数:

    pasv_enable=YES
    pasv_min_port=50000
    pasv_max_port=50100
    pasv_address=your_server_public_ip  # 替换为服务器公网IP(若为云服务器)
    

    重启服务后,需在防火墙中开放21(FTP控制端口)及50000-50100(被动模式数据端口):

    sudo ufw allow 21/tcp
    sudo ufw allow 50000:50100/tcp
    sudo ufw reload
    

5. 重启VSFTPD服务

完成配置后,重启服务以应用更改:

sudo systemctl restart vsftpd

若需设置开机自启,可执行:

sudo systemctl enable vsftpd

6. 测试FTP连接

使用FTP客户端(如FileZilla)连接服务器,输入用户名、密码及服务器IP,验证是否能正常登录、上传/下载文件。若连接失败,需检查:

  • 防火墙是否开放正确端口;
  • 配置文件语法是否正确(可通过sudo vsftpd -t测试);
  • 用户主目录权限是否正确。

通过以上步骤,可在Ubuntu上完成VSFTPD用户权限的基础设置。根据实际需求,可进一步调整配置(如虚拟用户、不同权限级别等)以满足复杂场景。

0