aggiunta utente command è un'utilità di basso livello utilizzata per aggiungere/creare account utente in Linux e altri simile a Unix sistemi operativi.
Linux è un sistema multiutente, il che significa che più persone possono interagire con lo stesso sistema contemporaneamente. Questi utenti devono essere creati prima di utilizzare il sistema.
Quando viene richiamato, useradd
crea un nuovo account utente in base alle opzioni specificate nella riga di comando e ai valori predefiniti impostati in /etc/default/useradd
file. useradd
legge anche il contenuto di /etc/login.defs
file. Questo file contiene la configurazione per la suite di password shadow come la politica di scadenza delle password, gli intervalli di ID utente utilizzati durante la creazione di utenti regolari e di sistema e altro ancora.
Solo il root o gli utenti con privilegi sudo possono utilizzare il comando useradd per creare un nuovo account utente. Quando viene richiamato, useradd crea un nuovo account utente in base alle opzioni specificate nella riga di comando e ai valori predefiniti impostati in /etc/default/useradd
file.
- Modifica /etc/passwd , /etc/shadow , /etc/group e /etc/gshadow file per gli account utente appena creati.
- Crea e popola una home directory per il nuovo utente.
- Imposta autorizzazioni e proprietà sulla home directory.
Indice dei contenuti
- Crea un nuovo utente
- Aggiungi un nuovo utente e crea la home directory
- Crea un utente con una directory principale diversa
- Utente con un ID utente specifico
- Utente con un ID utente specifico
- Aggiungi un utente a più gruppi
- Utente senza Home Directory
- Utente con data di scadenza dell'account
- Utente con data di scadenza della password
- Aggiunta di commenti personalizzati all'utente
- Specifica di una shell di accesso utente
- Creazione di un utente di sistema
- Concatenare gli argomenti
- Modifica dei valori useradd predefiniti
- Eliminazione di un utente da Linux
- Aggiunta di un gruppo in Linux
- Cambia il gruppo di utenti
1. Crea un nuovo utente
Sintassi di base di useradd il comando è:
# sudo useradd [options] username
Esempio:
sudo useradd citizix
Quando aggiungiamo un nuovo utente in Linux con useradd comando, viene creato in uno stato bloccato e per sbloccare quell'account utente, dobbiamo impostare una password per quell'account con passwd comando.
$ sudo passwd citizix
Changing password for user citizix.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
Una voce viene aggiunta automaticamente a /etc/passwd file:
$ cat /etc/passwd | grep citizix
citizix:x:1001:1001::/home/citizix:/bin/bash
I campi in /etc/passwd
sono separati da due punti :
e rappresentano quanto segue:
- Nome utente :Nome di accesso utente utilizzato per accedere al sistema. Dovrebbe essere lungo tra 1 e 32 caratteri.
- Password :password utente (o carattere x) memorizzata in /etc/shadow file in formato crittografato.
- ID utente (UID) :ogni utente deve avere un ID utente (UID ) Numero di identificazione dell'utente. Per impostazione predefinita, UID 0 è riservato all'utente root e agli UID compresi tra 1-99 sono riservati ad altri account predefiniti. Ulteriori UID che vanno da 100-999 sono riservati agli account di sistema e ai gruppi.
- ID gruppo (GID) :l'ID gruppo principale (GID ) Numero di identificazione del gruppo memorizzato in /etc/group file.
- Informazioni utente :questo campo è facoltativo e consente di definire informazioni aggiuntive sull'utente. Ad esempio, il nome completo dell'utente. Questo campo è riempito dal comando 'dito'.
- Home Directory :la posizione assoluta della home directory dell'utente.
- Conchiglia :la posizione assoluta della shell di un utente, ad esempio /bin/bash .
2. Aggiungi un nuovo utente e crea Home Directory
Usa il -m
(--create-home
) opzione per creare la directory home dell'utente come /home/username
:
sudo useradd -m username
Il comando sopra crea la directory home del nuovo utente e copia i file da /etc/skel
directory nella directory home dell'utente.
3. Crea un utente con una directory principale diversa
Per impostazione predefinita, useradd creerà una home directory con lo stesso nome del nome utente. Per creare una directory home diversa usa -d
argomento con il percorso di quella directory.
Questo comando crea la directory home /opt/citizixone
per l'utente citizixone.
sudo useradd -d /opt/citizixone citizixone
Controlla in /etc/passwd
$ cat /etc/passwd | grep citizixone
citizixone:x:1002:1002::/opt/citizixone:/bin/bash
4. Utente con un ID utente specifico
Se è necessario specificare un ID utente per l'utente creato, utilizzare l'argomento -u
(--uid
) in questo modo:
sudo useradd -u 1009 citizix
5. ID gruppo specifico
Per specificare un ID gruppo, usa -g
(--gid
) opzione come in questo esempio:
sudo useradd -g citizix citizixtwo
Verifica il GID dell'utente con questo comando:
$ sudo id citizixtwo
uid=1003(citizixtwo) gid=1001(citizix) groups=1001(citizix)
$ cat /etc/passwd | grep citizixtwo
citizixtwo:x:1003:1001::/home/citizixtwo:/bin/bash
6. Aggiungi un utente a più gruppi
Se vuoi aggiungere un utente a più gruppi, usa il -G
(--groups
) opzione come in questo esempio:
Aggiungi l'utente citizix
ai gruppi admins
, webadmin
, developers
:
sudo usermod -a -G admins,webadmin,developers citizix
Crea un utente citizixtwo
aggiungendolo ai gruppi admins
, webadmin
, developers
:
sudo useradd -G admins,webadmin,developers citizix
Utilizzare questi comandi per verificare che gli utenti siano stati aggiunti correttamente ai gruppi:
sudo id citizix
sudo id citizixtwo
7. Utente senza Home Directory
Se vuoi creare un utente senza una home directory, usa il -M
opzione:
sudo useradd -M citizix
8. Utente con data di scadenza dell'account
A volte vuoi creare un utente con data di scadenza. Usa questo comando per creare un utente citizixfour
che scadrà il 2021-12-30
:
sudo useradd -e 2021-12-30 citizixfour
Per verificare l'età dell'account e della password usa il chage
comando:
$ sudo chage -l citizixfour
Last password change : Oct 08, 2021
Password expires : never
Password inactive : never
Account expires : Dec 30, 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
9. Utente con data di scadenza della password
Il -f
argomento viene utilizzato per definire il numero di giorni di inattivazione dell'utente dopo la scadenza di una password. Un valore di 0
disattivare l'account utente non appena la password è scaduta. Per impostazione predefinita, il valore di scadenza della password è impostato su -1
significa non scadere mai.
In questo esempio, imposteremo una data di scadenza della password dell'account su 45 days
su un utente citizixfive
usando -e
e -f
opzioni.
sudo useradd -e 2021-12-30 -f 45 citizixfive
sudo chage -l citizixfive
10. Aggiunta di commenti personalizzati all'utente
Il -c
(--comment
) aggiunge una breve descrizione per il nuovo utente. In genere il nome completo dell'utente o le informazioni di contatto vengono aggiunti come commento.
sudo useradd -c "Citizix User" citizixsix
Controlla il /etc/passwd
$ cat /etc/passwd | grep citizixsix
citizixsix:x:1006:1006:Citizix User:/home/citizixsix:/bin/bash
11. Specifica di una shell di accesso utente
Il -s
(--shell
) viene utilizzata per specificare una shell di accesso. Possiamo usare una delle shell installate come /bin/bash
o bin/zsh
o per gli utenti che non hanno nulla a che fare con la shell di accesso possiamo fare /sbin/nologin
per specificare che non esiste una shell di accesso:
# Specify /bin/zsh
sudo useradd -s /bin/zsh citizix
# Specify no login
sudo useradd -s /sbin/nologin citizix
12. Creazione di un utente di sistema
A volte abbiamo bisogno di utenti di sistema che verranno utilizzati dal sistema o dalle applicazioni che installiamo nel sistema.
Utilizza il -r
(--system
) argomento per definire un utente di sistema:
sudo useradd -r grafana
13. Concatenare gli argomenti
Possiamo anche concatenare gli argomenti durante la creazione di un utente.
Controlla questo esempio creando un utente durante la creazione di una directory home specificata /var/www/citizix
e definire una shell di accesso personalizzata /bin/zsh
e aggiungendo un commento Citizix Web User
:
sudo useradd -m -d /var/www/citizix -s /bin/zsh -c "Citizix Web User" -U citizix
14. Modifica dei valori di aggiunta utente predefiniti
Il useradd
le impostazioni predefinite sono memorizzate nel file /etc/default/useradd
.
Verifica il contenuto di /etc/default/useradd
:
$ cat /etc/default/useradd
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
Puoi anche interrogarli usando l'argomento -D
per useradd
comando:
$ sudo useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
Per aggiornare o modificare questi valori, modificare il file o utilizzare useradd -D
passando i valori.
Esempio di modifica della shell di accesso da /bin/bash
a /bin/zsh
sudo useradd -D -s /bin/zsh
Verifichiamo che sia stato aggiornato:
$ sudo useradd -D | grep -i shell
SHELL=/bin/zsh
15. Eliminazione di un utente da Linux
Per eliminare un utente, usa userdel
comando:
sudo userdel citizixfive
16. Aggiunta di un gruppo in Linux
Per creare manualmente un gruppo, usa il comando.
Questo crea un gruppo sftp-users
nel nostro sistema:
sudo groupadd sftp-users
Confermiamo che il gruppo è stato creato
$ sudo grep sftp-users /etc/group
sftp-users:x:1007:
Usa il comando -G
per altri gruppi (-G
aggiunge l'utente a un nuovo gruppo ma lo mantiene anche in quello vecchio (aggiungi).
Usa l'id
comando per confermare
sudo id citizix
17. Cambia il gruppo di utenti
Per creare un utente e cambiare il suo gruppo principale in quello specificato, usa -g
opzione:
sudo useradd -g citizix citizixseven
Conclusione
Abbiamo esplorato come eseguire operazioni di base con useradd
comandi. Siamo riusciti a creare utenti, aggiungerli a gruppi e modificarli o eliminarli.
Puoi usare le manpage per saperne di più sul comando useradd:
man useradd
Per controllare tutte le opzioni per useradd, digita il comando nel terminale senza opzione:
$ useradd
Usage: useradd [options] LOGIN
useradd -D
useradd -D [options]
Options:
-b, --base-dir BASE_DIR base directory for the home directory of the
new account
-c, --comment COMMENT GECOS field of the new account
-d, --home-dir HOME_DIR home directory of the new account
-D, --defaults print or change default useradd configuration
-e, --expiredate EXPIRE_DATE expiration date of the new account
-f, --inactive INACTIVE password inactivity period of the new account
-g, --gid GROUP name or ID of the primary group of the new
account
-G, --groups GROUPS list of supplementary groups of the new
account
-h, --help display this help message and exit
-k, --skel SKEL_DIR use this alternative skeleton directory
-K, --key KEY=VALUE override /etc/login.defs defaults
-l, --no-log-init do not add the user to the lastlog and
faillog databases
-m, --create-home create the user's home directory
-M, --no-create-home do not create the user's home directory
-N, --no-user-group do not create a group with the same name as
the user
-o, --non-unique allow to create users with duplicate
(non-unique) UID
-p, --password PASSWORD encrypted password of the new account
-r, --system create a system account
-R, --root CHROOT_DIR directory to chroot into
-P, --prefix PREFIX_DIR prefix directory where are located the /etc/* files
-s, --shell SHELL login shell of the new account
-u, --uid UID user ID of the new account
-U, --user-group create a group with the same name as the user
-Z, --selinux-user SEUSER use a specific SEUSER for the SELinux user mapping