You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS EFS权限问题:所属群组过多的用户访问目录被拒绝

解决CentOS+SSSD同步AD用户群组过多导致EFS访问失败的问题

这是SSSD对接AD同步场景里挺常见的权限坑,核心问题大概率和Linux内核的NGROUPS_MAX参数有关——这个参数限制了单个用户能同时关联的附属群组数量,默认值通常是16。当用户的群组总数(含主组)超过这个阈值时,SSSD可能无法同步所有群组,或者在群组更新后,有权限的群组没被纳入系统识别的有效列表,最终导致用户无法访问EFS目录。

第一步:排查问题根源

  1. 检查系统的群组数量限制
    运行以下命令查看当前系统的NGROUPS_MAX值:

    sysctl kernel.ngroups_max
    

    或者通过ulimit查看用户级别的限制:

    ulimit -a | grep maxgroups
    

    如果输出是16,那基本可以锁定就是这个限制在搞鬼。

  2. 确认用户的实际群组数量
    查看用户test的所有群组,统计总数:

    id test
    

    数一下输出里的群组条目,加上主组如果超过16,就完全符合我们的判断。

  3. 检查SSSD的群组同步配置
    打开SSSD配置文件/etc/sssd/sssd.conf,找到对应AD域的配置段(比如[domain/your_ad_domain]),查看是否有ldap_group_member_limit或max_groups参数——如果这些参数设置得比用户实际群组数小,也会导致部分群组无法同步。

第二步:解决问题

  1. 调整内核的NGROUPS_MAX限制

    • 临时生效(重启后失效):
      sysctl -w kernel.ngroups_max=64
      
    • 永久生效:
      编辑/etc/sysctl.conf,添加或修改以下内容:
      kernel.ngroups_max=64
      
      然后执行命令让配置立即生效:
      sysctl -p
      
  2. 调整SSSD的同步参数
    在/etc/sssd/sssd.conf的AD域配置段中添加或修改:

    ldap_group_member_limit = 64
      max_groups = 64
    

    保存后重启SSSD服务:

    systemctl restart sssd
    
  3. 刷新用户缓存并验证
    清除用户test的SSSD缓存,确保新的群组信息被同步:

    sss_cache -u test
    

    然后让用户test重新登录,或者执行id test确认testgroup已经出现在群组列表中,再尝试访问EFS目录。

额外排查点

如果上述步骤没解决问题,还可以检查:

  • EFS目录的POSIX权限是否正确设置,testgroup是否拥有对应的读/写权限;
  • AD中testgroup的GID是否在CentOS系统中正确同步;
  • 查看SSSD的日志文件/var/log/sssd/sssd_your_ad_domain.log,是否有群组同步相关的错误信息,比如超出限制的报错。

内容的提问来源于stack exchange,提问作者OrigamiEye

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:21:36