我想从 openLDAP 身份验证迁移到其他身份验证方法。我的主要问题是 sudoers,我需要手动迁移它们。
因此,我需要为此创建一个脚本。我想为此使用 bash。ldif 文件包含如下行:
dn: cn=Devs, ou=SUDOers, dc=example,dc=com
sudoUser: %devs
sudoCommand: /bin/su - command
sudoCommand: /bin/su - wwwadmin
sudoHost: ALL
description: Developer Admin
objectClass: sudoRole
cn: Devs
所以,我需要做的是:
- 读取 LDIF 文件。
- 提取 dn: 和空白行之间的所有行,或者包含 cn: Devs 的行之间的所有行
我只想使用嵌入式 BASH 命令、grep、awk、sed 等。
没有 Python、PHP、Perl 等。
答案1
好的,我找到了一种使用 sed 的简单方法:
sed -n '/start_search/,/end_search/p' filename)
- start_search 是第一行的模式
- end_search 是最后一行的模式。
在我的例子中,start_search 是 'dn: cn=',end_search 是 '^cn:' 或 '^$'