Linux

當使用者的名稱包含空格時,我如何列出使用者的組?

  • September 13, 2019

我們的站點使用 Active Directory,並且許多組名包含空格。這使得輸出groups無法可靠解析,即使是肉眼也是如此(是否有“倫敦”和“開發者”組,或“倫敦開發者”組?)。

我看不到groups使用另一個分隔符(換行符或 NUL 可以)或按 GID 列出組的方法。

當某些組名包含空格時,有沒有辦法可靠地獲取使用者組的列表?

我正在使用 Ubuntu 18.04.3,並且會很樂意安裝更多的軟體包,或者編寫腳本!

儘管groups似乎沒有空分隔條目的選項,id但確實如此 - 至少在應該適用於 Ubuntu 18.04 1的 GNU CoreUtils 實現中

  -z, --zero
         delimit entries with NUL characters, not whitespace;

所以例如

id -Gnz someuser

應該給出一個以空分隔someuser的補充組名稱列表 - 您可以使用

id -Gnz someuser | xargs -0 printf '%s\n'

1請注意,POSIX 不強制使用此選項,因此它不可移植。參見例如The Open Group Base Specifications

引用自:https://unix.stackexchange.com/questions/541562