LINUX

Linux Enumera los miembros del grupo en la terminal de Linux

Lista de miembros del grupo 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 fila que contiene la siguiente información:

  1. Nombre del grupo
  2. Clave
  3. ID de grupo (GID)
  4. Lista de usuarios del grupo

Para tener una idea de lo que estamos hablando, crearemos nuevos usuarios y luego los agregaremos a un grupo nombrado 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, debe usar el comando «groupadd».

El siguiente comando agregará un nuevo grupo «opensource».

# groupadd opensource

Para confirmar la existencia del grupo 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 «opensource», ejecute el siguiente comando:

# usermod -aG opensource james

Cómo enumerar los miembros de un grupo

1) Usar gato/etc/grupo

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 Está El nombre del grupo
X representa contraseña encriptada
1005 representa ID de grupo (GID)
James, Alice, Paul representan USUARIOS existente en el grupo.

2) Usando la orden de miembro

Puedes usar members Comando para listar usuarios en un grupo.

La sintaxis para esto es

# members groupname

En este ejemplo tendremos

# members opensource

Salida

james alice paul

3) Usando el comando getent

También puedes usar getent Comando para listar los usuarios en el grupo.

A continuación se muestra la sintaxis:

# getent group groupname

P.ej

# getent group opensource

Salida

opensource:x:1005:james,paul

4) Usando una secuencia de comandos perl

Finalmente, puede enumerar todos los grupos en su sistema Linux y mostrar todos los miembros en esos grupos usando un script perl como se muestra.

Primero, cree el script usando 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.

Otorgue 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, pudimos lograr mucho con poco esfuerzo usando secuencias de comandos de shell.

Conclusión

En este breve tutorial, le mostré los comandos básicos junto con un script de perl que puede usar para mostrar grupos y los miembros de esos grupos de manera conveniente. Nos alegra que se haya tomado el tiempo con nosotros. Estén atentos para más tutoriales informativos.

Lea también:

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar