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

开发libnss例程时SSH登录后用户secondary groups无法显示的问题求助

开发libnss例程时SSH登录后用户secondary groups无法显示的问题求助

我最近在做一个扩展Linux认证选项的新项目,目前软件整体功能正常,但在通过自己开发的libnss库访问用户组时遇到了一个奇怪的问题,想请教下大家有没有遇到过类似情况或者能给点排查思路。

具体场景如下:

  • 我有一个测试用户testuser,它的主组是globalsudo,同时拥有附加组Development
  • 当我通过SSH登录到系统后,执行id命令查看用户组信息,发现附加组Development没有被显示出来:
    $ id
    uid=5000003(testuser) gid=2000032(globalsudo) groups=2000032(globalsudo)
    
  • 但如果我用newgrp Development切换到这个附加组后,再执行id,两个组就都能正常显示了:
    $ newgrp Development
    $ id
    uid=5000003(testuser) gid=2000001(Development) groups=2000001(Development),2000032(globalsudo)
    
  • 另外,如果直接在Linux控制台登录该用户,所有组都能正常显示:
    $ id
    uid=5000003(testuser) gid=2000032(globalsudo) groups=2000032(globalsudo),2000001(Development)
    
  • 还有一种情况,当我用sudo切换到这个用户时,组信息也是完整的:
    $ sudo -u testuser /bin/bash
    $ id
    uid=5000003(testuser) gid=2000032(globalsudo) groups=2000032(globalsudo),2000001(Development)
    

看起来问题只出现在SSH登录的场景下,有没有大佬能分析下这可能是哪里的问题?是不是SSH登录时调用NSS库的流程和控制台、sudo有什么差异?

备注:内容来源于stack exchange,提问作者user1387229

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.16 08:44:29