Ricerca nel sito web

LFCA: Scopri la gestione degli account utente - Parte 5


In qualità di amministratore di sistema Linux, avrai il compito di garantire il flusso regolare di tutte le operazioni IT nella tua organizzazione. Dato che alcune operazioni IT sono intrecciate, un amministratore di sistema solitamente ricopre molti ruoli, tra cui quello di amministratore di database o di rete.

Questo articolo è la Parte 5 della serie LFCA, in questa parte conoscerai i comandi generali di amministrazione del sistema per creare e gestire gli utenti in un sistema Linux.

Gestione dell'account utente in Linux

Una delle responsabilità principali di un amministratore di sistemi Linux è creare e gestire gli utenti in un sistema Linux. Ogni account utente ha 2 identificatori univoci: il nome utente e l'ID utente (UID).

Essenzialmente, ci sono 3 categorie principali di utenti in Linux:

Utente root

L'utente root è l'utente più potente in un sistema Linux e viene solitamente creato durante il processo di installazione. L'utente root ha potere assoluto sul sistema Linux o su qualsiasi altro sistema operativo simile a UNIX. L'utente può accedere a tutti i comandi, file e directory e modificare il sistema secondo le proprie preferenze.

L'utente root può aggiornare il sistema, installare e disinstallare pacchetti, aggiungere o rimuovere altri utenti, concedere o revocare autorizzazioni ed eseguire qualsiasi altra attività di amministrazione del sistema senza alcuna restrizione.

L'utente root può fare praticamente qualsiasi cosa sul sistema. Il presupposto dei sistemi Linux e UNIX è che tu sappia benissimo cosa stai facendo con il sistema. Detto questo, l’utente root può facilmente danneggiare il sistema. Tutto ciò che serve è che tu esegua un comando fatale e il sistema andrà in fumo.

Per questo motivo, è altamente sconsigliato eseguire comandi come utente root. Invece, la buona pratica richiede di configurare un utente sudo. Ciò significa concedere i privilegi sudo a un utente normale per eseguire determinate attività amministrative e limitare alcune attività solo all'utente root.

Utente regolare

Un utente normale è un normale utente di accesso che può essere creato da un amministratore di sistema. Di solito, è possibile crearne uno durante il processo di installazione. Tuttavia, puoi comunque creare tutti gli utenti regolari necessari dopo l'installazione.

Un utente normale può eseguire solo attività e accedere a file e directory per i quali è autorizzato. Se necessario, a un utente normale possono essere concessi privilegi elevati per eseguire attività a livello amministrativo. Gli utenti regolari possono anche essere eliminati o disabilitati in caso di necessità.

Conto di servizio

Si tratta di un account non di accesso creato quando viene installato un pacchetto software. Tali account vengono utilizzati dai servizi per eseguire processi nel sistema. Non sono progettati o destinati a svolgere attività di routine o amministrative nel sistema.

File di gestione utenti

Le informazioni sugli utenti in un sistema Linux sono archiviate nei seguenti file:

  • Il file /etc/passwd
  • Il file /etc/group
  • Il file /etc/gshadow
  • Il file /etc/shadow

Comprendiamo ogni file e cosa fa:

Il file /etc/passwd

Il file /etc/passwd contiene numerose informazioni sugli utenti contenute in vari campi. Per visualizzare il contenuto del file è sufficiente utilizzare il comando cat come mostrato.

cat /etc/passwd

Ecco uno snippet dell'output.

tecmint:x:1002:1002:tecmint,,,:/home/tecmint:/bin/bash

Concentriamoci sulla prima riga e arricchiamo i vari campi. Partendo dall'estrema sinistra abbiamo quanto segue:

  • Il nome utente: questo è il nome dell'utente, in questo caso, tecmint.
  • La Password: la seconda colonna rappresenta la password crittografata dell'utente. La password non viene stampata in testo semplice, viene invece utilizzato un segnaposto con un segno x.
  • L'UID: questo è l'ID dell'utente. È un identificatore univoco per ogni utente.
  • Il GID: questo è l'ID gruppo.
  • Una breve descrizione o riepilogo dell'utente.
  • Questo è il percorso della directory home dell'utente. Per l'utente tecmint, abbiamo /home/tecmint.
  • Questa è la shell di accesso. Per gli utenti con accesso regolare, questo è solitamente rappresentato come /bin/bash. Per gli account di servizio come SSH o MySQL, questo viene solitamente rappresentato come /bin/false.

Il file /etc/group

Questo file contiene informazioni sui gruppi di utenti. Quando viene creato un utente, la shell crea automaticamente un gruppo che corrisponde al nome utente dell'utente. Questo è noto come il gruppo primario. L'utente viene aggiunto al gruppo primario al momento della creazione.

Ad esempio, se crei un utente chiamato bob, il sistema crea automaticamente un gruppo chiamato bob e aggiunge l'utente bob al gruppo.

cat /etc/group

tecmint:x:1002:

Il file /etc/group ha 3 colonne. Dall'estrema sinistra abbiamo:

  • Nome del gruppo. Ogni nome di gruppo deve essere univoco.
  • Password del gruppo. Solitamente rappresentato da un segnaposto x.
  • ID gruppo (GID)
  • Membri del gruppo. Questi sono i membri che appartengono al gruppo. Questo campo viene lasciato vuoto se l'utente è l'unico membro del gruppo.

NOTA: un utente può essere membro di più gruppi. Allo stesso modo, un gruppo può avere più membri.

Per confermare i gruppi a cui appartiene un utente, eseguire il comando:

groups username

Ad esempio, per verificare a quali gruppi appartiene l'utente tecmint, esegui il comando:

groups tecmint

L'output conferma che l'utente appartiene a due gruppi: tecmint e sudo.

tecmint : tecmint sudo

Il file /etc/gshadow

Questo file contiene password crittografate o "ombreggiate" per gli account di gruppo e, per motivi di sicurezza, non è accessibile agli utenti normali. È leggibile solo dall'utente root e dagli utenti con privilegi sudo.

sudo cat /etc/gshadow

tecmint:!::

Dall'estrema sinistra, il file contiene i seguenti campi:

  • Nome del gruppo
  • Password di gruppo crittografata
  • Amministratore del gruppo
  • Membri del gruppo

Il file /etc/shadow

Il file /etc/shadow memorizza le password effettive degli utenti in un formato con hash o crittografato. Anche in questo caso, i campi sono separati da due punti e assumono il formato mostrato.

sudo cat /etc/shadow

tecmint:$6$iavr8PAxxnWmfh6J$iJeiuHeo5drKWcXQ.BFGUrukn4JWW7j4cwjX7uhH1:18557:0:99999:7:::

Il file ha 9 campi. Partendo dall'estrema sinistra abbiamo:

  • Il nome utente: questo è il tuo nome di accesso.
  • La password dell'utente. Questo viene presentato in un formato hash o crittografato.
  • L'ultima modifica della password. Questa è la data da quando la password è stata modificata e viene calcolata a partire dalla data dell'epoca. L'epoca è il 1° gennaio 1970.
  • L'età minima della password. Questo è il numero minimo di giorni che devono trascorrere prima che sia possibile impostare una password.
  • L'età massima della password. Questo è il numero massimo di giorni dopo i quali è necessario modificare la password.
  • Il periodo di avviso. Come suggerisce il nome, questo è il numero di giorni poco prima della scadenza della password in cui un utente viene informato dell'imminente scadenza della password.
  • Il periodo di inattività. Il numero di giorni dopo la scadenza della password in cui un account utente viene disabilitato senza che l'utente modifichi la password.
  • La data di scadenza. La data in cui l'account utente è scaduto.
  • Campo riservato. – Questo è lasciato vuoto.

Come aggiungere utenti in un sistema Linux

Per le distribuzioni Debian e Ubuntu, l'utilità adduser viene utilizzata per aggiungere utenti.

La sintassi è abbastanza semplice e diretta.

adduser username

Ad esempio, per aggiungere un utente chiamato bob, esegui il comando

adduser bob

Dall'output, viene creato un utente chiamato "bob" e viene aggiunto a un gruppo appena creato chiamato "bob". Inoltre, il sistema crea anche una directory home e vi copia i file di configurazione.

Successivamente, ti verrà richiesta la password del nuovo utente e quindi confermala. La shell richiederà inoltre il nome completo dell'utente e altre informazioni facoltative come il numero della stanza e il telefono dell'ufficio. Questa informazione non è realmente necessaria, quindi è sicuro saltarla. Infine, premi 'Y' per confermare che le informazioni fornite sono corrette.

Per i sistemi RHEL e basati su CentOS, utilizza il comando useradd.

useradd bob

Successivamente, imposta la password per l'utente utilizzando il comando passwd come segue.

passwd bob

Come eliminare gli utenti in un sistema Linux

Per eliminare un utente dal sistema, è consigliabile prima impedire all'utente di accedere al sistema come mostrato.

passwd -l bob

Se lo desideri, puoi eseguire il backup dei file dell'utente utilizzando il comando tar.

tar -cvf /backups/bob-home-directory.tar.bz2  /home/bob

Infine, per eliminare l'utente insieme alla directory home utilizzare il comando deluser come segue:

deluser --remove-home bob

Inoltre, puoi utilizzare il comando userdel come mostrato.

userdel -r bob

I due comandi rimuovono completamente l'utente insieme alle sue directory home.

Conclusione

Questa era una panoramica dei comandi di gestione degli utenti che si rivelerà utile soprattutto durante la gestione degli account utente nell'ambiente dell'ufficio. Provateli di tanto in tanto per affinare le vostre capacità di amministrazione del sistema.