开发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
相关产品推荐
相关产品推荐

