温馨提示×

ubuntu vsftp如何进行权限设置

小樊
38
2025-12-28 02:45:53
栏目: 智能运维

Ubuntu 上 vsftpd 权限设置实操指南

一 基础配置与最小权限

  • 安装与备份
    • 安装:sudo apt update && sudo apt install vsftpd
    • 备份:sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
  • 核心配置项(/etc/vsftpd.conf)
    • 身份与写权限
      • anonymous_enable=NO(禁止匿名,提升安全)
      • local_enable=YES(允许本地系统用户登录)
      • write_enable=YES(允许上传/删除/改名)
    • 本地掩码与默认权限
      • local_umask=022(新建文件默认权限为644,目录为755
    • 目录隔离
      • chroot_local_user=YES(将用户限制在其主目录)
      • allow_writeable_chroot=YES(允许被 chroot 的根目录可写,避免 500 OOPS)
    • 访问控制
      • userlist_enable=YES
      • userlist_file=/etc/vsftpd.user_list
      • userlist_deny=NO(白名单模式:仅列表内用户可登录)
  • 生效与验证
    • 重启:sudo systemctl restart vsftpd
    • 日志:/var/log/vsftpd.log(排错首选)

二 用户与目录权限落地

  • 创建专用 FTP 用户(禁止 SSH 登录更安全)
    • 新建:sudo adduser ftpuser
    • 限制登录:sudo usermod -s /usr/sbin/nologin ftpuser
  • 主目录权限(两种常见做法,二选一)
    • 方案 A(简单):主目录可写
      • sudo chown ftpuser:ftpuser /home/ftpuser
      • sudo chmod 755 /home/ftpuser(若仍报 500 OOPS,确认已设置 allow_writeable_chroot=YES
    • 方案 B(更稳妥):主目录只读,专用上传目录可写
      • sudo chmod 555 /home/ftpuser
      • mkdir -p /home/ftpuser/uploads
      • sudo chown ftpuser:ftpuser /home/ftpuser/uploads
      • sudo chmod 775 /home/ftpuser/uploads
  • 用户组协作(多人共享目录)
    • sudo groupadd ftpgroup
    • sudo usermod -aG ftpgroup ftpuser1
    • sudo usermod -aG ftpgroup ftpuser2
    • 共享目录示例:
      • sudo mkdir /data/ftp
      • sudo chown alice:ftpgroup /data/ftp
      • sudo chmod 775 /data/ftp(组内成员可读写,其他只读)

三 访问控制与白名单

  • 白名单配置(推荐)
    • /etc/vsftpd.user_list 中逐行写入允许登录的用户名
    • 配置:userlist_enable=YES,userlist_file=/etc/vsftpd.user_list,userlist_deny=NO
  • 黑名单配置(可选)
    • userlist_deny=YES,列表内用户将被拒绝
  • 说明
    • 若同时启用 /etc/ftpusers(禁止登录名单),该文件中的用户将被拒绝,优先级通常高于 user_list(取决于具体 PAM/配置)

四 被动模式与防火墙

  • vsftpd 被动模式端口
    • 配置:pasv_enable=YES
    • 建议固定端口段(便于放行):pasv_min_port=1024,pasv_max_port=1048
  • UFW 放行示例
    • 命令:
      • sudo ufw allow 21/tcp
      • sudo ufw allow 1024:1048/tcp
      • sudo ufw reload
  • 云厂商安全组
    • 同样需要放行 21/tcp 与所选的被动端口段(如 1024–1048

五 加密传输与常见问题

  • 启用 SSL/TLS(FTPS)
    • 配置:ssl_enable=YES
    • 建议准备证书(如自签或 Let’s Encrypt),并在配置中指定 rsa_cert_filersa_private_key_file
    • 客户端使用 FTP over TLS 模式连接(如 FileZilla)
  • 常见问题速解
    • 500 OOPS: refusing to run with writable root inside chroot
      • 方案 1:添加 allow_writeable_chroot=YES
      • 方案 2:将主目录设为 555,并为上传创建可写子目录(如 uploads
    • 登录被拒或无权限
      • 检查 /var/log/vsftpd.log、白名单/黑名单、目录属主与权限(特别是 chroot 目录与上传目录)
    • 被动模式连不上
      • 核对 pasv_min_port/pasv_max_port 与防火墙/安全组是否放行一致
  • 安全提示
    • FTP 明文传输,在公网建议使用 SFTP/FTPS;必要时限制可登录用户与可写目录,定期审计日志

0