温馨提示×

Ubuntu vsftpd权限设置

小樊
45
2025-11-16 17:28:07
栏目: 智能运维

Ubuntu 上 vsftpd 权限设置实操指南

一 安装与基础配置

  • 安装 vsftpd
    • 执行:sudo apt update && sudo apt install vsftpd
  • 核心配置项(/etc/vsftpd.conf)
    • 启用本地用户与写入:local_enable=YESwrite_enable=YES
    • 限制用户在主目录:chroot_local_user=YES
    • 允许 chroot 可写:allow_writeable_chroot=YES
    • 可选:启用用户白名单
      • userlist_enable=YESuserlist_file=/etc/vsftpd.user_listuserlist_deny=NO
  • 生效与验证
    • 重启服务:sudo systemctl restart vsftpd
    • 查看状态:sudo systemctl status vsftpd
    • 日志排查:/var/log/vsftpd.logjournalctl -u vsftpd

二 用户与目录权限

  • 创建系统用户(推荐禁用 shell 登录)
    • sudo adduser ftpusersudo useradd -m -s /sbin/nologin ftpuser
    • 设置密码:sudo passwd ftpuser
  • 目录归属与权限
    • 家目录:sudo chown -R ftpuser:ftpuser /home/ftpusersudo chmod 755 /home/ftpuser
    • 只读目录示例:sudo chmod 755 /path/to/dir
    • 组内读写示例:sudo chmod 750 /path/to/dir && sudo usermod -aG groupname ftpuser
    • 精细化 ACL(可选):setfacl -m u:ftpuser:r-x /path/to/dir
  • 白名单放行(若启用 userlist)
    • echo "ftpuser" | sudo tee -a /etc/vsftpd.user_list

三 常见场景与推荐配置

  • 本地用户读写并限制在主目录
    • 配置:local_enable=YESwrite_enable=YESchroot_local_user=YESallow_writeable_chroot=YES
    • 权限:chown ftpuser:ftpuser ~ftpuserchmod 755 ~ftpuser
  • 只读共享目录
    • 权限:chown root:root /srv/ftpchmod 755 /srv/ftp
    • 上传专用子目录:chown ftpuser:ftpuser /srv/ftp/uploadchmod 755 /srv/ftp/upload
    • 说明:仅赋予上传目录写权限,下载目录保持只读更安全
  • 用户白名单
    • 配置:userlist_enable=YESuserlist_file=/etc/vsftpd.user_listuserlist_deny=NO
    • 操作:将允许登录的用户写入 /etc/vsftpd.user_list 并重启服务

四 被动模式与防火墙

  • 启用被动模式(PASV)
    • 配置:pasv_enable=YESpasv_min_port=30000pasv_max_port=31000
  • UFW 放行
    • 命令:sudo ufw allow 20/tcpsudo ufw allow 21/tcpsudo ufw allow 30000:31000/tcp
  • 云厂商安全组
    • 放行入站 TCP 2130000–31000 端口范围

五 加密传输与日志排查

  • 启用 SSL/TLS(推荐)
    • 配置:ssl_enable=YESrsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pemrsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
    • 客户端使用 FTPS(990/AUTH TLS) 连接
  • 日志与常见问题
    • 日志路径:/var/log/vsftpd.logjournalctl -u vsftpd
    • 无法登录:检查 userlist_deny 策略、PAM、目录归属与权限(家目录不可世界可写)
    • 被动模式失败:确认云安全组/UFW 已放行 PASV 端口范围,且客户端使用被动模式连接

0