ユーザー名にスペースが含まれている場合は、ユーザーグループをどのようにリストしますか?

ユーザー名にスペースが含まれている場合は、ユーザーグループをどのようにリストしますか?

私たちのウェブサイトはActive Directoryを使用しており、多くのグループ名にスペースが含まれています。これにより、目視でも出力を安定的に解析することはできませんgroups(「London」および「Developers」グループはありますか、それとも「London Developers」グループはありますか?)。

groups別の区切り文字(改行またはNULが使用)を使用したり、GID別にグループをリストしたりする方法はありません。

一部のグループ名にスペースが含まれている場合は、ユーザーグループのリストを確実に取得する方法はありますか?

私はUbuntu 18.04.3を使用しており、より多くのパッケージをインストールしたりスクリプトを作成したいです!

ベストアンサー1

groupsnullで区切られた項目のオプションはないようですが、少なくともUbuntu 18.04 1idのGNU CoreUtils実装ではそうです。

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

例えば

id -Gnz someuser

指定する必要がある補足グループ名の空で区切られたリストsomeuser- 以下を使用して状況を確認できます。

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

1POSIXはこのオプションを必要としないため、移植性はありません。例を見るオープングループ基本仕様

おすすめ記事