Ricerca nel sito web

15 comandi utili per l'aggiunta dell'utente con esempi in Linux


Conosciamo tutti i comandi più popolari chiamati "useradd" o "adduser" in Linux. Ci sono momenti in cui a un amministratore di sistema Linux viene chiesto di creare account utente su Linux con proprietà, limitazioni o commenti specifici.

In Linux, il comando "useradd" è un'utilità di basso livello utilizzata per aggiungere o creare account utente in Linux e altri sistemi operativi simili a Unix. Il comando "adduser" è molto simile al comando "useradd", poiché è solo un collegamento simbolico ad esso.

In alcune distribuzioni Linux, il comando "useradd" potrebbe avere una versione leggermente diversa. Suggerisco 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 /etc/passwd, /etc/shadow, /etc/group, e /etc/gshadow file per gli account utente appena creati.
  • Crea e popola una directory home per il nuovo utente.
  • Imposta autorizzazioni e proprietà sulla directory home.

Sintassi del comando Aggiungi utente

La sintassi di base del comando "useradd" è:

useradd [options] username

In questo articolo, mostreremo i 15 comandi "useradd" più comunemente usati con esempi pratici in Linux.

1. Come aggiungere un nuovo utente in Linux

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

È possibile aggiungere un solo utente e il nome utente deve essere univoco e non esistere già nel sistema.

Ad esempio, per aggiungere un nuovo utente denominato "tecmint" utilizza 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, dobbiamo 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.

Una volta creato un nuovo utente, la sua voce viene automaticamente aggiunta al file "/etc/passwd". Questo file viene utilizzato per memorizzare le informazioni dell'utente e la voce dovrebbe essere.

tecmint:x:1000:1000:tecmint:/home/tecmint:/bin/bash

La voce precedente contiene una serie di sette campi separati da due punti, ciascun campo ha il proprio significato.

Vediamo quali sono questi campi:

  • Nome utente: il nome di accesso dell'utente viene utilizzato per accedere al sistema. Dovrebbe contenere da 1 a 32 caratteri.
  • Password: la password dell'utente (o il carattere 'x') è memorizzata nel file "/etc/shadow" in un formato crittografato.
  • ID utente (UID): ogni utente deve avere un ID utente (UID), che sta per Numero di identificazione utente. Per impostazione predefinita, UID 0 è riservato all'utente root e gli UID compresi tra 1 e 99 sono riservati ad altri account predefiniti. Inoltre, gli UID compresi tra 100 e 999 sono riservati agli account e ai gruppi di sistema.
  • ID gruppo (GID): l'ID gruppo primario (GID), che sta per Numero di identificazione gruppo, è memorizzato nel file ' /etc/group'.
  • Informazioni utente: questo campo è facoltativo e consente di definire informazioni aggiuntive sull'utente, come il nome completo dell'utente. Queste informazioni possono essere inserite utilizzando il comando finger.
  • Directory home: la posizione assoluta della directory home dell'utente.
  • Shell: la posizione assoluta della shell di un utente, ad esempio /bin/bash.

2. Come creare un utente con una home directory diversa

Per impostazione predefinita, il comando "useradd" crea la directory home di un utente nella 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 comando seguente 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 altre informazioni relative all'utente, come ID utente, ID gruppo, shell e commenti utilizzando il seguente comando cat.

cat /etc/passwd | grep anusha

anusha:x:1001:1001::/data/projects:/bin/bash

3. Come creare un utente con un ID utente specifico

In Linux, ogni utente ha il proprio UID (numero di identificazione univoco). Per impostazione predefinita, quando creiamo un nuovo account utente in Linux, vengono assegnati gli 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 abbia creato con un ID utente definito (1002) utilizzando il seguente comando.

cat /etc/passwd | grep navin

navin:x:1002:1002::/home/navin:/bin/bash

NOTA: assicurati che il valore di un ID utente deve essere univoco rispetto a qualsiasi altro utente già creato nel sistema.

4. Come creare un utente con un ID di gruppo specifico

Allo stesso modo, ogni utente ha il proprio GID (Identificatore di gruppo). Possiamo creare utenti anche con ID di gruppo specifici utilizzando l'opzione '-g'.

In questo esempio, aggiungeremo contemporaneamente un utente 'tarunika' con un UID e un GID specifici con l'aiuto del '- 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, utilizzare il comando id:

id -gn tarunika

5. Come aggiungere un utente a più gruppi

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

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

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

Successivamente, verifica che più gruppi 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

6. Come aggiungere un utente senza directory home

In alcune situazioni, in cui non vogliamo assegnare directory home a un utente per motivi di sicurezza, la directory home dell'utente sarà root quando accede a un sistema appena riavviato. Quando un utente di questo tipo utilizza il comando "su", la sua directory di accesso sarà la directory home dell'utente precedente.

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

useradd -M shilpi

Ora verifichiamo che l'utente sia stato creato senza una home directory utilizzando il comando ls.

ls -l /home/shilpi

ls: cannot access /home/shilpi: No such file or directory

7. Come creare un utente con una data di scadenza in Linux

Per impostazione predefinita, 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 AAAA-MM-GG. Ciò è 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 è 27 agosto 2021, nel formato AAAA-MM-GG formato.

useradd -e 2021-08-27 aparna

Successivamente, verifica le informazioni sull'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

8. Come creare un utente con data di scadenza della password

L'argomento '-f' viene utilizzato per definire il numero di giorni dopo la scadenza della password. Un valore 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 il '-e' e opzioni '-f'.

useradd -e 2014-04-27 -f 45 mansi

9. Come aggiungere un utente con commenti in Linux

L'opzione '-c' ti 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 una singola riga senza spazi.

Ad esempio, il comando seguente aggiungerà un utente "mansi" e inserirà il nome completo di quell'utente, Manis Khurana, nel campo dei commenti.

useradd -c "Manis Khurana" mansi

Puoi visualizzare il commento inserito nel file "/etc/passwd" nella sezione commenti utilizzando il comando tail.

tail -1 /etc/passwd

mansi:x:1010:1013:Manis Khurana:/home/mansi:/bin/sh

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 login 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".

In questo esempio verrà aggiunto un utente "tecmint" senza una shell di accesso, ad esempio la 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

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 di /bin/bash e informazioni aggiuntive sull'utente.

useradd -m -d /var/www/ravi -s /bin/bash -c "TecMint Owner" -U ravi

Nel comando precedente, le opzioni '-m' e '-d' creano un utente con una directory home specificata e '-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 una home, una shell, un commento, un UID/GID definiti

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

useradd -m -d /var/www/tarunika -s /bin/zsh -c "TecMint Technical Writer" -u 1000 -g 100 tarunika

13. Come creare un utente con Home, No Shell, Commento e UID

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

L'opzione '-s' imposta la shell predefinita su /bin/bash, ma in questo caso impostiamo 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

14. Come creare un utente con una casa, una shell, uno scheletro e un UID specificati

L'unico cambiamento in questo comando è che abbiamo usato l'opzione '-k' per impostare la directory scheletro 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

15. Come creare un utente senza home, shell o gruppo, con commento

Il seguente comando è molto diverso dagli altri comandi spiegati sopra. In questo caso abbiamo utilizzato l'opzione '-M' per creare un utente senza la directory home dell'utente e l'opzione '-N' viene utilizzata per indicare al sistema di creare solo un nome utente (senza gruppo). L'opzione '-r' serve per creare un utente di sistema.

useradd -M -N -r -s /bin/false -c "Disabled TecMint Member" clayton

Per ulteriori informazioni e opzioni su "useradd", esegui il comando "useradd" nel terminale per visualizzare le opzioni disponibili

useradd

Se desideri modificare gli attributi dell'account utente come la modifica del nome utente, dell'ID utente (UID), della directory home, della shell e altro, utilizza il comando usermod.