OP ha formulato la domanda per escludere la possibilità di utilizzare il comando gruppi . Dal momento che fa parte dei coreutils su Linux, (a) è stato rimosso o (b) OP sta digitando male il nome.
OP avrebbe potuto usare in groupsquesto modo, ad esempio:
for name in $(cut -d: -f1 /etc/passwd);do groups $name|grep -w sudo|awk '{print $1;}';done
Una risposta suggerita è solo grep's per il nome del gruppo in /etc/group. A volte funziona come previsto.
Un uso leggermente migliore di grep tiene conto della sintassi di /etc/group:
group_name:password:GID:user_list
in modo che solo la parte prima dei primi due punti sia un nome di gruppo valido. Un semplice grep, indipendentemente dalla sintassi, può (e vuole) raccogliere partite fuorvianti dal file. Usa le espressioni regolari per far corrispondere al grep esattamente ciò che è necessario:
grep -E '^users:' /etc/group |sed -e 's/^.*://'
o usando una variabile di shell:
grep -E '^'$groupname':' /etc/group |sed -e 's/^.*://'
Tuttavia, questo elenca solo quelli che non fanno parte di un gruppo predefinito . Per aggiungere quelli , è necessario prendere in considerazione il file delle password, ad esempio, estraendo il numero del gruppo-id da /etc/group, e la stampa gli utenti il cui gruppo di default partite da /etc/passwd, ad esempio,
grp=$(awk -F: '$1 ~ /^users$/ {print $3; }' </etc/group)
awk -F: '$4 ~ /^'$grp'$/ { print $1; }' </etc/passwd
Puoi fare la stessa cosa usando solo grep e sed, ma è più lavoro che usare awk.
Un'altra risposta suggerita è stata proposta usando getent, che probabilmente si troverà su una macchina Linux (con Debian, fa parte di GNU libc). Tuttavia, un rapido controllo di ciò mostra che fornisce solo il /etc/groupcontenuto.
Io (come la maggior parte) non ho libuserso lidinstallato, quindi non posso commentare se soddisfa le condizioni di OP.
C'è anche il idprogramma, che fornisce informazioni di gruppo. Qualcuno potrebbe espandersi su questo come una possibile risposta.
groupscomando. È improbabile che tu non lo abbia su Linux, poiché fa parte di coreutils.