Come creare utenti in Linux [15 esempi di comando useradd]

Siamo tutti consapevoli dei comandi più popolari chiamati ‘useradd‘ o ‘adduser‘ in Linux. Ci sono momenti in cui un Amministratore di Sistema Linux è chiesto di creare account utente su Linux con proprietà, limitazioni o commenti specifici.

In Linux, il comando ‘useradd‘ è uno strumento di basso livello utilizzato per aggiungere o creare account utente in Linux e in altri sistemi operativi Unix-like. Il comando ‘adduser‘ è molto simile al comando ‘useradd‘, poiché è solo un collegamento simbolico ad esso.

In alcune distribuzioni di Linux, il comando ‘useradd‘ potrebbe avere una versione leggermente diversa. Consiglio di leggere la documentazione prima di utilizzare le nostre istruzioni per creare nuovi account utente in Linux.

Quando eseguiamo il comando ‘useradd‘ nel terminale Linux, esegue le seguenti attività principali:

  • Modifica i file /etc/passwd, /etc/shadow, /etc/group e /etc/gshadow per gli account utente appena creati.
  • Crea e popola una directory home per il nuovo utente.
  • Imposta i permessi e le proprietà sulla directory home.

Comando Useradd Sintassi

La sintassi base del comando ‘useradd‘ è:

useradd [options] username

In questo articolo, mostreremo le 15 ‘useradd’ più comunemente utilizzate con esempi pratici in Linux.

1. Come Aggiungere un Nuovo Utente in Linux

Per aggiungere o creare un nuovo utente, è necessario utilizzare il comando ‘useradd‘ o ‘adduser‘ seguito dal ‘username‘. Il ‘username‘ è il nome di accesso che un utente utilizza per accedere al sistema.

Può essere aggiunto un solo utente, e il nome utente deve essere unico e non già esistente sul sistema.

Ad esempio, per aggiungere un nuovo utente chiamato ‘tecmint‘ utilizzare il seguente comando:

useradd tecmint

Quando aggiungiamo un nuovo utente in Linux con il comando ‘useradd‘, viene creato in uno stato bloccato. Per sbloccare quell’account utente, è necessario impostare una password per quell’account utilizzando il comando ‘passwd

passwd tecmint

Changing password for user tecmint.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
Create a User in Linux

Una volta creato un nuovo utente, il suo ingresso viene aggiunto automaticamente al file ‘/etc/passwd‘. Questo file viene utilizzato per memorizzare le informazioni dell’utente, e l’ingresso dovrebbe essere.

tecmint:x:1000:1000:tecmint:/home/tecmint:/bin/bash
View User Info in Linux

L’ingresso sopra contiene un set di sette campi separati da due punti, ogni campo avente il proprio significato.

Vediamo quali sono questi campi:

  • Username – Il nome utente di accesso viene utilizzato per accedere al sistema. Dovrebbe essere lungo tra 1 e 32 caratteri.
  • Password – La password dell’utente (o il carattere 'x') è memorizzata nel file ‘/etc/shadow‘ in formato crittografato.
  • User ID (UID) – Ogni utente deve avere un User ID (UID), che sta per Numero di Identificazione dell’Utente. Per impostazione predefinita, UID 0 è riservato per l’utente root, e i UID che vanno da 1 a 99 sono riservati per altri account predefiniti. Inoltre, i UID che vanno da 100 a 999 sono riservati per gli account e i gruppi del sistema.
  • Group ID (GID) – Il Group ID primario (GID), che sta per Numero di Identificazione del Gruppo, è memorizzato nel file ‘/etc/group‘.
  • Informazioni Utente – Questo campo è opzionale e ti permette di definire ulteriori informazioni sull’utente, come il nome completo dell’utente. Queste informazioni possono essere compilate utilizzando il comando finger.
  • Directory Home – La posizione assoluta della directory home dell’utente.
  • Shell – La posizione assoluta di una shell dell’utente, ovvero /bin/bash.

2. Come Creare un Utente con una Directory Home Diversa

Per impostazione predefinita, il comando ‘useradd‘ crea la directory home dell’utente sotto la directory ‘/home‘ con il nome utente. Ad esempio, come visto sopra, la directory home predefinita per l’utente ‘tecmint‘ è ‘/home/tecmint‘.

Tuttavia, questo comportamento può essere modificato utilizzando l’opzione '-d' insieme alla posizione della nuova directory home (ad esempio, ‘/data/projects‘). Ad esempio, il seguente comando creerà un utente ‘anusha‘ con una directory home impostata su ‘/data/projects‘.

# useradd -d /data/projects anusha
# passwd anusha

Puoi visualizzare la directory home dell’utente e altra informazione relativa all’utente, come ID utente, ID gruppo, shell e commenti usando il seguente comando cat.

cat /etc/passwd | grep anusha

anusha:x:1001:1001::/data/projects:/bin/bash
Create a User with a Home Directory in Linux

3. Come Creare un Utente con un ID Utente Specifico

In Linux, ogni utente ha il proprio UID (Numero di Identificazione Unico). Per impostazione predefinita, quando creiamo un nuovo account utente in Linux, assegna ID utente 500, 501, 502, e così via.

Tuttavia, possiamo creare utenti con ID utente personalizzati utilizzando l’opzione '-u'. Ad esempio, il seguente comando creerà un utente ‘navin‘ con un ID utente personalizzato ‘1002‘.

useradd -u 1002 navin

Ora, verifichiamo che l’utente creato abbia un userid definito (1002) utilizzando il seguente comando.

cat /etc/passwd | grep navin

navin:x:1002:1002::/home/navin:/bin/bash
Create a User with the User ID in Linux

NOTA: Assicurarsi che il valore di un ID utente sia univoco da qualsiasi altro utente già creato nel sistema.

4. Come Creare un Utente con un ID Gruppo Specifico

GID (Identificatore Gruppo). Possiamo creare anche utenti con ID gruppo specifici usando l’opzione '-g'.

In questo esempio, aggiungeremo un utente ‘tarunika‘ con un UID e GID specifici contemporaneamente con l’aiuto delle opzioni '-u' e '-g'.

useradd -u 1005 -g tecmint tarunika

Ora, controlla l’ID utente e l’ID gruppo assegnati nel file ‘/etc/passwd‘.

cat /etc/passwd | grep tarunika

tarunika:x:1005:1000::/home/tarunika:/bin/bash

Per verificare il GID dell’utente, usa il comando id:

id -gn tarunika
Create a User with Group ID in Linux

5. Come Aggiungere un Utente a Più Gruppi

L’opzione '-G' è usata per aggiungere un utente a gruppi aggiuntivi. Ogni nome gruppo è separato da una virgola, senza spazi intermedi.

In questo esempio, stiamo aggiungendo un utente ‘tecmint‘ a più gruppi, come admins, webadmin, e developers.

groupadd admins
groupadd webadmin
groupadd developers
usermod -a -G admins,webadmin,developers tecmint
useradd -G admins,webadmin,developers paddy

Successivamente, verifica che i gruppi multipli siano assegnati all’utente con il comando id.

id tecmint

uid=1000(tecmint) gid=1000(tecmint)
groups=1000(tecmint),1007(admins),1008(webadmin),1009(developers)
context=root:system_r:unconfined_t:SystemLow-SystemHigh
Add User to Group in Linux

6. Come Aggiungere un Utente Senza Directory Home

In alcune situazioni, in cui non vogliamo assegnare directory home per un utente per motivi di sicurezza, la directory home dell’utente sarà root quando effettuano l’accesso a un sistema appena riavviato. Quando un tale utente utilizza il comando ‘su‘, la loro directory di accesso sarà la directory home dell’utente precedente.

Per creare utenti senza le loro home directory, viene utilizzata l’opzione '-M'. Ad esempio, il seguente comando creerà un utente ‘shilpi‘ senza una directory home.

useradd -M shilpi

Ora, verifichiamo che l’utente sia stato creato senza una directory home usando il comando ls.

ls -l /home/shilpi

ls: cannot access /home/shilpi: No such file or directory
Create User Without Home Directory in Linux

7. Come Creare un Utente con una Data di Scadenza in Linux

Per default, quando aggiungiamo utenti con il comando ‘useradd‘, l’account utente non scade mai, il che significa che la loro data di scadenza è impostata su 0 (che significa mai scaduto).

Tuttavia, possiamo impostare la data di scadenza utilizzando l’opzione '-e', che dovrebbe essere nel formato YYYY-MM-DD. Questo è utile per creare account temporanei per un periodo di tempo specifico.

In questo esempio, creiamo un utente ‘aparna‘ con una data di scadenza dell’account, che è il 27 agosto 2021, nel formato YYYY-MM-DD.

useradd -e 2021-08-27 aparna

Successivamente, verifichiamo le informazioni di invecchiamento dell’account e della password utilizzando il comando ‘chage‘ per l’utente ‘aparna‘ dopo aver impostato la data di scadenza dell’account.

chage -l aparna

Last password change					: Jun 25, 2021
Password expires					: never
Password inactive					: never
Account expires						: Aug 27, 2021
Minimum number of days between password change		: 0
Maximum number of days between password change		: 99999
Number of days of warning before password expires	: 7
Create User With Account Expiry Date

8. Come Creare un Utente con una Data di Scadenza della Password

L’argomento '-f' viene utilizzato per definire il numero di giorni dopo la scadenza di una password. Un valore di 0 disattiva l’account utente non appena la password è scaduta. Per impostazione predefinita, il valore di scadenza della password è impostato su -1, il che significa che non scade mai.

In questo esempio, imposteremo una data di scadenza della password dell’account, che è di 45 giorni, per un utente ‘mansi‘ utilizzando le opzioni '-e' e '-f'.

useradd -e 2014-04-27 -f 45 mansi
Create User With Password Expiry Date

9. Come Aggiungere un Utente con Commenti in Linux

L’opzione '-c' consente di aggiungere commenti personalizzati, come il nome completo dell’utente, il numero di telefono, ecc., al file ‘/etc/passwd‘. Il commento può essere aggiunto come singola riga senza spazi.

Ad esempio, il seguente comando aggiungerà un utente ‘mansi‘ e inserirà il nome completo di quell’utente, Manis Khurana, nel campo commento.

useradd -c "Manis Khurana" mansi

È possibile visualizzare il commento inserito nel file ‘/etc/passwd‘ nella sezione dei commenti utilizzando il comando tail.

tail -1 /etc/passwd

mansi:x:1010:1013:Manis Khurana:/home/mansi:/bin/sh
Create User with Full Name

10. Come Creare una Shell di Accesso Utente in Linux

A volte, aggiungiamo utenti che non hanno nulla a che fare con la shell di accesso o talvolta ci viene richiesto di assegnare shell diverse ai nostri utenti. Possiamo assegnare diverse shell di accesso a ciascun utente con l’opzione ‘-s‘.

Ecco un esempio in cui aggiungeremo un utente ‘tecmint‘ senza un login shell, cioè con shell ‘/sbin/nologin‘.

useradd -s /sbin/nologin tecmint

Puoi controllare la shell assegnata all’utente nel file ‘/etc/passwd‘.

tail -1 /etc/passwd

tecmint:x:1011:1014::/home/tecmint:/sbin/nologin
Create a User with a Login Shell

11. Come Creare un Utente con Home, Shell e Commento Specificati

Il seguente comando creerà un utente ‘ravi‘ con una directory home ‘/var/www/tecmint‘, una shell predefinita ‘/bin/bash‘, e informazioni aggiuntive sull’utente.

useradd -m -d /var/www/ravi -s /bin/bash -c "TecMint Owner" -U ravi
Create a User with Home Directory and Login Shell

Nel comando sopra, le opzioni '-m' e '-d' creano un utente con una directory home specificata, e l’opzione '-s' imposta la shell predefinita dell’utente su ‘/bin/bash‘. L’opzione '-c' aggiunge informazioni extra sull’utente e l’argomento '-U' crea/aggiunge un gruppo con lo stesso nome dell’utente.

12. Come Creare un Utente con Home, Shell, Commento, UID/GID Definiti

Il comando è molto simile a quello sopra, ma qui definiamo la shell come ‘/bin/zsh‘ e impostiamo un UID e un GID personalizzati per un utente ‘tarunika’. L’opzione '-u' definisce l’UID del nuovo utente (cioè, 100), e l’opzione '-g' definisce il GID (cioè, 1000).

useradd -m -d /var/www/tarunika -s /bin/zsh -c "TecMint Technical Writer" -u 1000 -g 100 tarunika
Create a User with UID and GID

13. Come Creare un Utente con Home, Senza Shell, Commento e UID

Il seguente comando è molto simile ai due precedenti. L’unica differenza è che qui abbiamo disabilitato la shell di accesso per un utente chiamato ‘avishek‘ con un ID utente personalizzato (cioè 1019).

L’opzione '-s' imposta la shell predefinita su /bin/bash, ma in questo caso, abbiamo impostato la shell di accesso su ‘/usr/sbin/nologin‘. Ciò significa che l’utente ‘avishek‘ non sarà in grado di accedere al sistema.

useradd -m -d /var/www/avishek -s /usr/sbin/nologin -c "TecMint Sr. Technical Writer" -u 1019 avishek
Create a User with UID and Nologin

14. Come Creare un Utente con una Home, Shell, Skeleton e UID Specifici

L’unica modifica in questo comando è che abbiamo utilizzato l’opzione '-k' per impostare la directory skeleton personalizzata su /etc/custom.skell invece di quella predefinita, /etc/skel. Abbiamo anche utilizzato l’opzione '-s' per definire una shell diversa, /bin/tcsh, per l’utente ‘navin‘.

useradd -m -d /var/www/navin -k /etc/custom.skell -s /bin/tcsh -c "No Active Member of TecMint" -u 1027 navin
Create a User with Shell and UID

15. Come Creare un Utente senza Home, Shell o Gruppo, con Commento

Il seguente comando è molto diverso dagli altri comandi spiegati sopra. Qui abbiamo utilizzato l’opzione '-M' per creare un utente senza la directory home dell’utente, e l’opzione '-N' è utilizzata per istruire il sistema a creare solo un nome utente (senza un gruppo). L’opzione '-r' serve per creare un utente di sistema.

useradd -M -N -r -s /bin/false -c "Disabled TecMint Member" clayton
Create a User with NoLogin and Group

Per ulteriori informazioni e opzioni su ‘useradd‘, eseguire il comando ‘useradd‘ nel terminale per vedere le opzioni disponibili.

useradd

Se desideri modificare gli attributi dell’account utente come modificare il nome utente, l’ID utente (UID), la directory home, la shell e altro ancora, utilizza il comando usermod.

Source:
https://www.tecmint.com/add-users-in-linux/