我正在使用 SSSD 将 Linux 机器连接到活动目录。为了限制对 Linux 机器的访问,我在 sssd.conf 中使用 ad_access_filter。下面是示例行:
ad_access_filter = (|(memberOf:1.2.840.113556.1.4.1941:=CN=examplegroup1,OU=Groups,DC=ad,DC=example,DC=com)(memberOf:1.2.840.113556.1.4.1941:=CN=examplegroup2,OU=Groups,DC=ad,DC=example,DC=com))
对于我的用例来说,这个过滤器非常长,因为它包含 10 多个组,并且具有更分支的 OU 结构。因此,我想在配置文件中拆分此行,以使其更易于阅读。如果可以的话,我该怎么做?
先感谢您!
答案1
遗憾的是,基本的 INI 文件格式根本不能保证支持多行任何事物。个别软件可能会实现更智能的解析器,但这不是标准的,而 SSSD 使用的解析器就不是标准的。
您可能考虑将设置拆分ad_access_filter
为 中的单独文件/etc/sssd/conf.d/the_ad_access_filter_goes_here.conf
。然后将 AD 组过滤器的各个元素放入,例如,/etc/sssd/conf.d/the_ad_access_filter_inputs.txt
以更易于访问的格式。文件扩展名可能不是.txt
,但您明白了;SSSD 本身只查看.conf
文件。
然后使用您喜欢的任何脚本语言(并且知道在 Linux 系统上可用)编写一个简单的脚本,读取输入文件,将所有行连接在一起并删除任何内部空格,并将输出the_ad_access_filter_goes_here.conf
与注释一起打印出来,例如
# THIS FILE WAS AUTOMATICALLY GENERATED, EDITS WILL BE LOST
# Generated from "the_ad_access_filter_inputs.txt" on 2023-06-06 14:48:02
# Humans should read that file instead.
ad_access_filter = .....
根据您喜欢使用的脚本语言,您可以选择如何格式化输入文件。