ふと、Linuxでユーザ名・所属グループ名の一覧を取得したいできないんだっけと思ったので、ちょっと調べてみた。 残念ながら、一覧を取得するだけの単体のコマンドというものは見つけられなかったのだが、ユーザの一覧を取得してそこからgroupsコマンドに渡すことで、ユーザ名・グループ名の一覧が取得できる。
compgen -u | xargs -I@ groups @
[root@BS-PUB-CENT7-01 ~]# compgen -u | xargs -I@ groups @
root : root
bin : bin
daemon : daemon
adm : adm
lp : lp
sync : root
shutdown : root
halt : root
mail : mail
operator : root
games : users
ftp : ftp
nobody : nobody
avahi-autoipd : avahi-autoipd
systemd-bus-proxy : systemd-bus-proxy
systemd-network : systemd-network
dbus : dbus
polkitd : polkitd
tss : tss
postfix : postfix mail
sshd : sshd
nginx : nginx
test : nobody adm test
test2 : test2 adm
このようにコマンドを実行することで、コロン区切りでユーザ名:所属グループ名を取得できる。 複数のグループに所属している場合、一番左に位置しているのがプライマリグループとなる。