Shell Script – List of Users by Groups


I want to write a shell script that generates a list of users. for each user display the username and ID and all groups the user is a member of

it means like GROUPS command but for all users and with their id
I used cat -d: -f1,3 /etc/passwd to show the users with their id but I don't know how can I use the groups for each line

would you please help me to write this script

Best Answer

Use this script:

#! /bin/bash
for i in $(cat /etc/passwd  | cut -d: -f1); do
   echo -n $i ": "
   grep $i /etc/group | cut -d: -f1 | tr "\n" " "

It will list all users in the system (included system) and print the list of groups near them. With a trivial modification you can print the numeric id too.