Lista de miembros del grupo de Linux en la terminal de Linux
En este tutorial, veremos diferentes formas de enumerar los miembros de un grupo en Linux. los /etc/group
archivo de texto almacena información de grupo. Hay una entrada por línea que contiene la siguiente información:
- Nombre del grupo
- Contraseña
- ID de grupo (GID)
- Lista de usuarios del grupo
Para tener una idea de lo que estamos hablando, vamos a crear nuevos usuarios y luego agregarlos a un grupo llamado opensource
.
Agregar un nuevo usuario
Para agregar un nuevo usuario a Linux, ejecute el siguiente comando:
# adduser
You'll be prompted to enter the usernanme passsword and other details such as Phone number. For instance , let's add a new user called Andrew
addser andrew Adding user `andrew' ... Adding new group `andrew' (1001) ... Adding new user `andrew' (1004) with group `andrew' ... Creating home directory `/home/andrew' ... Copying files from `/etc/skel' ... Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully Changing the user information for andrew Enter the new value, or press ENTER for the default Full Name []: andrew james Room Number []: 45 Work Phone []: 555-456 Home Phone []: 987-764 Other []: Is the information correct? [Y/n] Y
Usando el mismo comando y procedimiento, podemos agregar más usuarios, en este caso, ‘James’, ‘Alice’ y ‘Paul’.
Agregar un nuevo grupo
Para agregar un nuevo grupo, necesita usar el comando ‘groupadd’.
El siguiente comando agregará un nuevo grupo de ‘código abierto’.
# groupadd opensource
Para confirmar que el grupo existe en ‘/ etc / group’, ejecute:
# grep -i "opensource" /etc/group
Agregar usuarios al grupo
Ahora, agreguemos los usuarios recién creados al grupo ‘código abierto’. Usaremos el comando usermod para esto.
Para agregar el usuario ‘james’ al grupo ‘código abierto’, ejecute el siguiente comando:
# usermod -aG opensource james
Cómo listar miembros de un grupo
1) Usando cat / etc / group
Como vimos anteriormente, la información del grupo se almacena en /etc/group
. Para mostrar esta información, ejecute
# cat /etc/group
Obtendrá una lista de grupos definidos por el sistema y el grupo que creamos anteriormente
# opensource:x:1005:james,alice,paul
Aquí,
fuente abierta es el Nombre del grupo
X representa el contraseña cifrada
1005 representa el ID de grupo (GID)
James, Alice, Paul representa el usuarios existente en el grupo.
2) Usando el comando de miembros
Puedes usar members
comando para listar usuarios en un grupo.
La sintaxis de esto es
# members groupname
En este ejemplo, tendremos
# members opensource
Producción
james alice paul
3) Usando el comando getent
También puede utilizar el getent
comando para listar usuarios en el grupo.
A continuación se muestra la sintaxis:
# getent group groupname
Por ejemplo
# getent group opensource
Producción
opensource:x:1005:james,paul
4) Usando un script de perl
Finalmente, puede listar todos los grupos en su sistema Linux y mostrar todos los miembros en esos grupos usando un script de perl como se muestra.
Primero, cree el script con su editor de texto favorito
# vim userlist.pl
Copy and Paste this script and Save
#!/usr/bin/perl -T # # Lists members of all groups, or optionally just the group # specified on the command line. use strict; use warnings; $ENV{"PATH"} = "/usr/bin:/bin"; my $wantedgroup = shift; my %groupmembers; my $usertext = `getent passwd`; my @users = $usertext =~ /^([a-zA-Z0-9_-]+):/gm; foreach my $userid (@users) { my $usergrouptext = `id -Gn $userid`; my @grouplist = split(' ',$usergrouptext); foreach my $group (@grouplist) { $groupmembers{$group}->{$userid} = 1; } } if($wantedgroup) { print_group_members($wantedgroup); } else { foreach my $group (sort keys %groupmembers) { print "Group ",$group," has the following members:n"; print_group_members($group); print "n"; } } sub print_group_members { my ($group) = @_; return unless $group; foreach my $member (sort keys %{$groupmembers{$group}}) { print $member,"n"; } }
Guardar y Salir.
Dar permisos de ejecución al script
# chmod +x userlist.pl
Finalmente, ejecute el script
# ./userlist.pl
Salida de muestra
Group opensource has the following members: james paul Group paul has the following members: paul Group plugdev has the following members: ubuntu Group postfix has the following members: postfix Group proxy has the following members: proxy Group root has the following members: root Group sudo has the following members: ubuntu Group sys has the following members: sys Group syslog has the following members: syslog Group systemd-bus-proxy has the following members: systemd-bus-proxy Group systemd-network has the following members: systemd-network Group systemd-resolve has the following members: systemd-resolve Group systemd-timesync has the following members: systemd-timesync Group ubuntu has the following members: ubuntu Group uucp has the following members: uucp Group uuidd has the following members: uuidd Group video has the following members: ubuntu Group www-data has the following members: www-data
Como se vio anteriormente, hemos podido lograr mucho con poco esfuerzo utilizando el script de shell.
Conclusión
En este breve tutorial, le mostramos comandos básicos junto con un script de Perl que puede usar para mostrar convenientemente grupos y miembros de esos grupos. Nos alegra que se haya tomado un tiempo con nosotros. Quédese aquí para obtener más tutoriales informativos.
Leer también: