问题:
一个隶属于16个以上组的用户无法写入NFS/NAS/Samba共享。 在Samba 10级调试日志中,可能会看到以下消息
- [2011/10/20 17:53:03.290707, 0] lib/util.c:1468(smb_panic) PANIC (pid 6543): sys_setgroups failed
这有什么原因吗?
原因:
- NFSv3对一个用户所属的组数敏感。 进一步调查表明它只能识别前16个组
- 如果某用户是16个以上AD组的成员,这些AD组又映射到Zone中的Unix组,则将从第17个组开始拒绝访问。
- 用户将没有任何权限对需要第17个组成员身份的NAS共享执行读/写/执行操作。
解决方法:
减少组的数量或使用adsetgroups命令(参见用法手册页)更改组的顺序。
对于Samba,有两种选择:
- 将每个AD用户的启用组数减少到16个以下
- 在smb.conf的[global]部分中,设置以下内容
- ignore syssetgroups error = Yes
- (这意味着组将不被应用。如果用户希望实施组成员关系,那么这将是一个问题,但是samba可以工作。)
- 使用支持65535组的OS平台,例如现代Linux(2.6内核)。
注意事项:
- 这是一个临时解决方案。 对于本地用户,将根据/etc/group文件中定义组的顺序返回这些组。
- 例如,如果在/etc/groups中以递增顺序定义了Group01-Group16,则运行groups命令将以相同的顺序显示组。 混合文件中的顺序将相应地反映在命令中。 对于AD用户,它取决于顺序,并且是字母
决议:
在撰写本文时,减少组数或使用NFS V4(据报道没有此限制)是唯一已知的解决方案。
有关更多参考,也请参考以下内容:
- http://nfsworld.blogspot.com/2005/03/whats-deal-on-16-group-id-limitation.html
- 要使其正常工作,需要做的全部工作就是rpc.mount–management-gids。即使用–management-gids选项