LINUX

Linux Elenca i membri del gruppo nel terminale Linux

Membri del gruppo elenco Linux

In questo tutorial, esamineremo diversi modi in cui puoi elencare i membri di un gruppo in Linux. Il /etc/group il file di testo memorizza le informazioni sul gruppo. C’è una voce per riga che contiene le seguenti informazioni:

  1. Nome del gruppo
  2. Parola d’ordine
  3. ID gruppo (GID)
  4. Elenco degli utenti del gruppo

Per avere un’idea di cosa stiamo parlando, creeremo nuovi utenti e successivamente li aggiungeremo a un gruppo denominato opensource.

Aggiunta di un nuovo utente

Per aggiungere un nuovo utente a Linux, esegui il seguente 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

Utilizzando lo stesso comando e la stessa procedura, possiamo aggiungere più utenti, in questo caso ‘James’, ‘Alice’ e ‘Paul’.

Aggiunta di un nuovo gruppo

Per aggiungere un nuovo gruppo, devi usare il comando “groupadd”.

Il seguente comando aggiungerà un nuovo gruppo “opensource”.

# groupadd opensource

Per confermare l’esistenza del gruppo in “/etc/group” eseguire:

# grep -i "opensource" /etc/group

Aggiunta di utenti al gruppo

Ora aggiungiamo gli utenti appena creati al gruppo “opensource”. Useremo il comando usermod per questo.

Per aggiungere l’utente “james” al gruppo “opensource” eseguire il seguente comando:

# usermod -aG opensource james

Come elencare i membri di un gruppo

1) Usando cat /etc/group

Come abbiamo visto in precedenza, le informazioni sul gruppo sono memorizzate in /etc/group. Per visualizzare queste informazioni, eseguire

# cat /etc/group

Otterrai un elenco di gruppi definiti dal sistema e il gruppo che abbiamo creato in precedenza

# opensource:x:1005:james,alice,paul

Qui,

fonte aperta è il nome del gruppo
X rappresenta password crittografata
1005 rappresenta ID gruppo (GID)
James, Alice, Paul rappresentano UTENTI esistenti nel gruppo.

2) Utilizzando il comando membro

Puoi usare members comando per elencare gli utenti in un gruppo.

La sintassi per questo è

# members groupname

In questo esempio, avremo

# members opensource

Uscita

james alice paul

3) Utilizzando il comando getent

Puoi anche usare getent comando per elencare gli utenti nel gruppo.

Di seguito la sintassi:

# getent group groupname

Per esempio

# getent group opensource

Uscita

opensource:x:1005:james,paul

4) Utilizzando uno script perl

Infine, puoi elencare tutti i gruppi sul tuo sistema Linux e visualizzare tutti i membri in quei gruppi usando uno script perl come mostrato.

Innanzitutto, crea lo script utilizzando il tuo editor di testo preferito

# 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";
}
}

Salva ed esci.

Concedi allo script i permessi di esecuzione

# chmod +x userlist.pl

Infine, esegui lo script

# ./userlist.pl

Esempio di output

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

Come visto sopra, siamo stati in grado di ottenere molto con poco sforzo utilizzando lo scripting della shell.

Conclusione

In questo breve tutorial, ti ho mostrato i comandi di base insieme a uno script perl che puoi usare per visualizzare comodamente i gruppi e i membri di quei gruppi. Siamo lieti che tu abbia dedicato del tempo con noi. Resta sintonizzato per ulteriori tutorial informativi.

Leggi anche:

Related Articles

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Back to top button
Close