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.