当用户属于超过16个组时,无法读取或写入NFS或Samba共享

问题:

一个隶属于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,有两种选择:

  1. 将每个AD用户的启用组数减少到16个以下
  2. 在smb.conf的[global]部分中,设置以下内容
    • ignore syssetgroups error = Yes
    • (这意味着组将不被应用。如果用户希望实施组成员关系,那么这将是一个问题,但是samba可以工作。)
  3. 使用支持65535组的OS平台,例如现代Linux(2.6内核)。

注意事项:

  • 这是一个临时解决方案。 对于本地用户,将根据/etc/group文件中定义组的顺序返回这些组。
  • 例如,如果在/etc/groups中以递增顺序定义了Group01-Group16,则运行groups命令将以相同的顺序显示组。 混合文件中的顺序将相应地反映在命令中。 对于AD用户,它取决于顺序,并且是字母

决议:

在撰写本文时,减少组数或使用NFS V4(据报道没有此限制)是唯一已知的解决方案。

有关更多参考,也请参考以下内容:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章