我有大量使用sssd连接到Windows活动目录域进行用户/组查找的Linux主机。 除了一个问题,大部分工作正常。 须藤
从我在testing中发现的任何时候你运行一个sudo命令sudo试图parsing用户所在的所有组的名称。由于sssd只默认cachinggid,并且必须慢速查找名称(假设最近在主机上没有导致sssdcaching组名),这可能会导致sudo命令在很多组中的帐户中暂停45秒,然后才会提示用户input密码以继续sudo命令。
从我的testing中,这个组名parsing发生,无论是否有适用于使用他们的组的用户的sudo规则。 我已经testing了在sudo.conf中改变group_source值,但是这似乎没有太大的影响。
从大多数组中删除我们的所有用户并不是一个真正的select(基础设施安全决定,我无法控制),所以我留下来试图find一种方法来阻止sudo暂停一段时间,而所有的组ID被抬起头来。
到目前为止唯一的解决scheme是每隔15分钟运行一次cronjob来做一些像getent group一样的事情,让sssd不断地将组名caching在内存中,但这似乎是一个黑客修复。 所以我希望在这种情况下网上有人可能有更好的解决scheme来加速sudo?
我会build议将ignore_group_members选项设置为true,或者将caching符号链接到tmpfs或等待1.14上游版本。
组解决速度慢的原因是,在caching过期后将组保存在caching更新上,即使没有任何更改,也会将完整的组对象写入磁盘caching。 在1.14中,我们正在修改caching逻辑,只在实际更改时更新caching,请参阅https://fedorahosted.org/sssd/wiki/DesignDocs/OneFourteenPerformanceImprovements
设置ignore_group_members将使这些组显示为空,从而减小它们的大小并加快caching保存时间。 请注意,这对sudofunction没有任何影响,因为sudo使用initgroups()来查看用户是哪个组的成员,而不是getent组和initgroup。
我也在前段时间写过关于sssd性能调优的博客文章,即使是关注于IPA服务器的情况,也有许多要点适用于sssd-adconfiguration: https ://jhrozek.wordpress.com/2015/08/ 19 /性能调整- SSSD换大IPA-AD-信任的部署/