前にユーザが所属しているグループの一覧を取得する処理について記述したが、今回はLinuxで各グループごとに所属しているユーザ一覧が必要になったので、出力用のコマンドを備忘で残しておく。 サブグループとして後から追加させたりしたユーザについては、getentコマンドで取得可能だ。

getent group
[root@BS-PUB-CENT7-01 ~]# getent group
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
disk:x:6:
lp:x:7:
mem:x:8:
kmem:x:9:
wheel:x:10:
…

ただ、あくまでもサブグループとして後からグループに参加させたりしたユーザのみしか表示されないので、システムユーザだったり、プライマリグループに所属しているユーザは表示されない。 それらを表示させるため、以下のようにちょっと無理やり出力させるコマンドを書いてみた。

getent group | awk -F: '{cmd="lid -ng "$1"|tr -d \"\n\" ";cmd|getline c;close(cmd);print $1":"c}'
[root@BS-PUB-CENT7-01 ~]# getent group | awk -F: '{cmd="lid -ng "$1"|tr -d \"\n\" ";cmd|getline c;close(cmd);print $1":"c}'
root: root sync shutdown halt operator
bin: bin
daemon: daemon
sys: daemon
adm: adm
tty: adm
disk: adm
lp: lp
mem: lp
kmem: lp
wheel: lp
cdrom: lp
mail: mail postfix
man: mail postfix
dialout: mail postfix
floppy: mail postfix
games: mail postfix
tape: mail postfix
video: mail postfix
ftp: ftp
lock: ftp
…