Comandi e impostazioni per la gestione degli account utente su Linux

Se gestisci un server Linux, probabilmente hai molti account utente da gestire e, inoltre, molti file e impostazioni da controllare. Di seguito sono riportati alcuni comandi e domande importanti per la configurazione e la gestione degli account utente e dei permessi di accesso.

Rilascio delle tessere identificative

Innanzitutto, quando si gestiscono gli account utente, è necessario conoscere l’ID utente (UID) e l’ID gruppo (GID). Nella maggior parte dei casi, ogni utente è l'unico membro di un gruppo che porta lo stesso nome dell'account utente. Infatti, entrambi vengono impostati al momento della creazione dell'account tramite il comando useradd. Quando si visualizza l'elenco dei contenuti della directory home dell'utente, si dovrebbe vedere qualcosa di simile a questo:

$ ls -ld /home/dbell

drwxr-xr-x. 8 dbell dbell 4096 23 mar 2021 /home/dbell

^ ^

| |

gruppo di utenti

Si noti che sia il nome utente che il nome del gruppo sono “dbell”. Per visualizzare i valori numerici corrispondenti, utilizzare invece il seguente comando:

$ ls -ldn dbell

drwxr-xr-x. 8 1003 1003 4096 23 mar 2021 dbell

^ ^

| |

UID GID

Sia il nome utente che il nome del gruppo hanno un valore numerico pari a 1003. Le informazioni visualizzate provengono dai file /etc/passwd e /etc/group, che uniscono i nomi ai rispettivi valori numerici.

$ grep dbell /etc/passwd /etc/group

/etc/passwd:dbell:x:1003:1003:Dana Bell:/home/dbell:/bin/bash

/etc/group:dbell:x:1003:

Elaborare documenti importanti

Alcuni dei file più importanti da gestire quando si amministrano gli account utente sono i file /etc/passwd, /etc/shadow e /etc/group. Come illustrato in precedenza, i file /etc/passwd e /etc/group contengono l’UID e il GID, oltre alla directory home dell’utente. Tutti i gruppi a cui appartiene un utente, compresi i gruppi personali, sono memorizzati nel file /etc/group. Il file /etc/shadow contiene i parametri relativi all’hash delle password e alla scadenza delle stesse, al fine di garantire la sicurezza delle password e di obbligare gli utenti a cambiarle regolarmente.

Queste voci vengono impostate quando si utilizza il comando useradd, che aggiunge righe ai file /etc/passwd, /etc/group e /etc/shadow.

$ sudo useradd newuser

$ sudo grep newuser /etc/passwd /etc/group /etc/shadow

/etc/passwd:newuser:x:1019:1019::/home/newuser:/bin/bash

/etc/group:newuser:x:1019:

/etc/shadow:newuser:!!:19372:0:99999:7:::

Si noti che è necessario utilizzare sudo per creare l'account e visualizzare il file /etc/shadow.

All’account utente verrà automaticamente assegnato il primo numero disponibile dell’UID del nuovo account. Nella maggior parte dei sistemi Linux, il primo account utente ha un valore pari a 1000 e ogni utente aggiuntivo avrà un valore superiore di uno rispetto a quello precedente. L'UID con il valore più basso è l'account di sistema. Come mostrato nell'ultima riga dell'output sopra riportato, al momento della creazione iniziale dell'account non è presente alcun hash della password. Il campo apparirà come ! ! , finché non verrà assegnata una password. Una volta impostata la password, una lunga stringa che rappresenta l'hash della password sostituirà i due punti esclamativi.

Gli amministratori di sistema spesso impostano una password temporanea per i nuovi utenti, poi la rendono non valida tramite un secondo comando `sudo`, come mostrato di seguito, e infine richiedono all'utente di impostare una nuova password al primo accesso. In questo modo, solo l'utente conosce la password dell'account.

$ sudo passwd newuser

Nuova password:

Digita nuovamente la nuova password:

$ sudo passwd -e newuser

Il quinto campo (separato da due punti) nel file /etc/passwd è destinato al nome completo e/o alla descrizione dell'utente, spesso denominato "campo commento".

È possibile aggiungerlo al momento della creazione dell'account oppure in un secondo momento utilizzando il comando `usermod -c`. D'altra parte, se si dispone dei privilegi di superutente, è sufficiente modificare il file `/etc/password` per aggiungere il nome completo.

$ sudo usermod -c “Dana Bell” dbell

$ grep dbell /etc/passwd

dbell:x:1003:1003:Dana Bell:/home/dbell:/bin/bash

^

|

nome utente o descrizione

Per inserire il nome completo durante la configurazione iniziale dell'account, utilizzare un comando simile al seguente:

$ sudo useradd -c “Dana Bell” dbell

Elimina account utente

Mentre il comando `useradd` crea account e il comando `usermod` consente di apportare modifiche agli account, il comando `userdel` può essere utilizzato per eliminare gli account. Tuttavia, è importante tenere presente che il comando `userdel` non elimina la directory home dell’utente a meno che non si includa l’opzione `-r` come segue:

$ sudo userdel newuser -r

Visualizza le impostazioni utente

Sebbene sia facile estrarre informazioni dai file /etc/passwd e /etc/group utilizzando grep, un altro comando molto utile per estrarre informazioni sugli account utente è il comando id, che mostra l’UID, il GID e l’appartenenza ai gruppi in un formato molto pratico.

$ id newuser

uid=1019(newuser) gid=1019(newuser) gruppi=1019(newuser)

$ id shs

uid=1000(shs) gid=1000(shs) gruppi=1000(shs),10(wheel),900(techs)

Aggiungi utente al gruppo secondario l

Il comando `usermod` consente anche di aggiungere utenti a gruppi secondari. Per farlo, aggiungi l'utente al gruppo "Technicians" utilizzando il comando riportato di seguito. Puoi quindi utilizzare il comando `id` per verificare le modifiche.

$ sudo usermod -a -G techs newuser

$ id newuser

uid=1019(newuser) gid=1019(newuser) gruppi=1019(newuser),20(techs)

Riassumere

Linux semplifica notevolmente la creazione, la modifica e l'eliminazione degli account, ma è necessario conoscere alcuni comandi importanti per gestire correttamente gli account utente e i permessi.

l

↑