如何列出 Linux 中给定用户的活动目录组(每行一个),知道某些组名包含空格字符

如何列出 Linux 中给定用户的活动目录组(每行一个),知道某些组名包含空格字符

当使用“groups”或“id -Gn”时,我最终会得到当前用户所有组的典型空格分隔列表。这些命令运行时假设组名不能包含空格字符,事实上,只要我们留在 Unix 中,情况就是如此。

然而,我的公司现在是一个更大的公司的一部分,该公司拥有 Microsoft 域设置,不幸的是,他们的 Active Directory 域组名称包含空格字符,例如“FOOBAR\Domain Users”。

我们的一个脚本通常使用“组”输出并根据空格字符分隔符创建列表,这意味着它现在彻底失败了:

$ groups
FOOBAR\Domain Users FOOBAR\Other Domain everyone admin 

...显然最终会生成这样的列表:

FOOBAR\Domain
Users
FOOBAR\Other
Domain
everyone
admin

您可以想象,前 4 组不存在,并且脚本的其余部分未能实现任何有价值的东西。

有谁知道在哪里可以更好地获取此类组名?

PS:我知道 /etc/group,但那里没有提到此类 AD 组。除了 AD 组之外,是否还有其他类似的文件可供我解析?

答案1

我偶然发现的旧帖子,但我目前的方法是

id | egrep -o 'groups=.*' | sed 's/,/\n/g' | cut -d'(' -f2 | sed 's/)//'

相关内容