Linux è un sistema multiutente, il che significa che più persone possono interagire con lo stesso sistema contemporaneamente. In qualità di amministratore di sistema, hai la responsabilità di gestire gli utenti e i gruppi del sistema creando e rimuovendo utenti e di assegnarli a gruppi diversi.
In questo articolo parleremo di come creare nuovi account utente utilizzando useradd
comando.
useradd
Comando #
La sintassi generale per useradd
il comando è il seguente:
useradd [OPTIONS] USERNAME
Solo il root o gli utenti con sudoprivileges possono usare useradd
comando per creare nuovi 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.
Le variabili definite in questo file differiscono da distribuzione a distribuzione, il che provoca il useradd
comando per produrre risultati diversi su sistemi diversi.
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.
Come creare un nuovo utente in Linux #
Per creare un nuovo account utente, invoca useradd
comando seguito dal nome dell'utente.
Ad esempio per creare un nuovo utente chiamato username
correresti:
sudo useradd username
Se eseguito senza alcuna opzione, useradd
crea un nuovo account utente utilizzando le impostazioni predefinite specificate in /etc/default/useradd
file.
Il comando aggiunge una voce a /etc/passwd
, /etc/shadow,
/etc/group
e /etc/gshadow
file.
Per poter accedere come utente appena creato, è necessario impostare la password utente. Per farlo, esegui passwd
comando seguito dal nome utente:
sudo passwd username
Ti verrà chiesto di inserire e confermare la password. Assicurati di utilizzare una password complessa.
Changing password for user username.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
Come aggiungere un nuovo utente e creare una home directory #
Sulla maggior parte delle distribuzioni Linux, quando si crea un nuovo account utente con useradd
, la home directory dell'utente non è stata creata.
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. Se elenchi i file in /home/username
directory, vedrai i file di inizializzazione:
ls -la /home/username/
drwxr-xr-x 2 username username 4096 Dec 11 11:23 .
drwxr-xr-x 4 root root 4096 Dec 11 11:23 ..
-rw-r--r-- 1 username username 220 Apr 4 2018 .bash_logout
-rw-r--r-- 1 username username 3771 Apr 4 2018 .bashrc
-rw-r--r-- 1 username username 807 Apr 4 2018 .profile
All'interno della home directory, l'utente può scrivere, modificare ed eliminare file e directory.
Creazione di un utente con una specifica home directory #
Per impostazione predefinita useradd
crea la directory home dell'utente in /home
. Se desideri creare la directory home dell'utente in un'altra posizione, utilizza il d
(--home
) opzione.
Ecco un esempio che mostra come creare un nuovo utente chiamato username
con una directory home di /opt/username
:
sudo useradd -m -d /opt/username username
Creazione di un utente con ID utente specifico #
Nei sistemi operativi simili a Linux e Unix, gli utenti sono identificati da UID e nome utente univoci.
L'identificatore utente (UID) è un numero intero positivo univoco assegnato dal sistema Linux a ciascun utente. L'UID e altri criteri di controllo dell'accesso vengono utilizzati per determinare i tipi di azioni che un utente può eseguire sulle risorse di sistema.
Per impostazione predefinita, quando viene creato un nuovo utente, il sistema assegna il successivo UID disponibile dall'intervallo di ID utente specificato in login.defs
file.
Richiama useradd
con il -u
(--uid
) opzione per creare un utente con un UID specifico. Ad esempio per creare un nuovo utente chiamato username
con UID di 1500
dovresti digitare:
sudo useradd -u 1500 username
Puoi verificare l'UID dell'utente, utilizzando il id
comando:
id -u username
1500
Creazione di un utente con ID gruppo specifico #
I gruppi Linux sono unità organizzative utilizzate per organizzare e amministrare gli account utente in Linux. Lo scopo principale dei gruppi è definire un insieme di privilegi quali autorizzazioni di lettura, scrittura o esecuzione per una determinata risorsa che possono essere condivise tra gli utenti all'interno del gruppo.
Quando si crea un nuovo utente, il comportamento predefinito di useradd
il comando consiste nel creare un gruppo con lo stesso nome del nome utente e lo stesso GID dell'UID.
Il -g
(--gid
) consente di creare un utente con un gruppo di accesso iniziale specifico. È possibile specificare il nome del gruppo o il numero GID. Il nome del gruppo o il GID devono già esistere.
L'esempio seguente mostra come creare un nuovo utente denominato username
e imposta il gruppo di accesso su users
digita:
sudo useradd -g users username
Per verificare il GID dell'utente, utilizza il id
comando:
id -gn username
users
Creazione di un utente e assegnazione di più gruppi #
Esistono due tipi di gruppi nei sistemi operativi Linux Gruppo primario e Gruppo secondario (o supplementare). Ogni utente può appartenere esattamente a un gruppo principale ea zero o più gruppi secondari.
Devi specificare un elenco di gruppi supplementari di cui l'utente sarà membro con il -G
(--groups
) opzione.
Il comando seguente crea un nuovo utente denominato username
con il gruppo principale users
e gruppi secondari wheel
e docker
.
sudo useradd -g users -G wheel,developers username
Puoi controllare i gruppi di utenti digitando
id username
uid=1002(username) gid=100(users) groups=100(users),10(wheel),993(docker)
Creazione di un utente con una specifica shell di accesso #
Per impostazione predefinita, la shell di accesso del nuovo utente è impostata su quella specificata in /etc/default/useradd
file. In alcune distribuzioni la shell predefinita è impostata su /bin/sh
mentre in altri è impostato su /bin/bash
.
Il -s
(--shell
) consente di specificare la shell di accesso del nuovo utente.
Ad esempio, per creare un nuovo utente denominato username
con /usr/bin/zsh
come tipo di shell di accesso:
sudo useradd -s /usr/bin/zsh username
Controllare la voce dell'utente in /etc/passwd
per verificare la shell di accesso dell'utente:
grep username /etc/passwd
username:x :1001:1001::/home/username:/usr/bin/zsh
Creazione di un utente con commento personalizzato #
Il -c
(--comment
) consente di aggiungere una breve descrizione per il nuovo utente. In genere il nome completo dell'utente o le informazioni di contatto vengono aggiunti come commento.
Nell'esempio seguente, stiamo creando un nuovo utente denominato username
con stringa di testo Test User Account
come commento:
sudo useradd -c "Test User Account" username
Il commento viene salvato in /etc/passwd
file:
grep username /etc/passwd
username:x :1001:1001:Test User Account:/home/username:/bin/sh
Il campo dei commenti è anche noto come GECOS
.
Creazione di un utente con una data di scadenza #
Per definire l'ora in cui scadranno i nuovi account utente, utilizzare il -e
(--expiredate
) opzione. Questo è utile per creare account temporanei.
La data deve essere specificata utilizzando il YYYY-MM-DD
formato.
Ad esempio per creare un nuovo account utente denominato username
con una scadenza fissata al 22 gennaio 2019 si correrebbe:
sudo useradd -e 2019-01-22 username
Usa la chage
comando per verificare la data di scadenza dell'account utente:
sudo chage -l username
L'output sarà simile a questo:
Last password change : Dec 11, 2018
Password expires : never
Password inactive : never
Account expires : Jan 22, 2019
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
Creazione di un utente di sistema #
Non vi è alcuna reale differenza tecnica tra il sistema e gli utenti regolari (normali). In genere gli utenti del sistema vengono creati durante l'installazione del sistema operativo e dei nuovi pacchetti.
Usa il -r
(--system
) opzione per creare un account utente di sistema. Ad esempio, per creare un nuovo utente di sistema denominato username
correresti:
sudo useradd -r username
Gli utenti del sistema vengono creati senza data di scadenza. I loro UID sono scelti dall'intervallo di ID utente di sistema specificato in login.defs
file, che è diverso dall'intervallo utilizzato per gli utenti normali.
Modifica dei valori useradd predefiniti #
Le opzioni di aggiunta utente predefinite possono essere visualizzate e modificate utilizzando il -D
, --defaults
opzione o modificando manualmente i valori in /etc/default/useradd
file.
Per visualizzare le opzioni predefinite correnti, digita:
useradd -D
L'output sarà simile a questo:
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/sh
SKEL=/etc/skel
CREATE_MAIL_SPOOL=no
Supponiamo che tu voglia cambiare la shell di accesso predefinita da /bin/sh
a /bin/bash
. Per farlo, specifica la nuova shell come mostrato di seguito:
sudo useradd -D -s /bin/bash
Puoi verificare che il valore predefinito della shell sia stato modificato eseguendo il comando seguente:
sudo useradd -D | grep -i shell
SHELL=/bin/bash
Conclusione #
Ti abbiamo mostrato come creare nuovi account utente utilizzando useradd
comando. Le stesse istruzioni si applicano a qualsiasi distribuzione Linux, inclusi Ubuntu, CentOS, RHEL, Debian, Fedora e Arch Linux.
useradd
è un'utilità di basso livello, gli utenti Debian e Ubuntu possono invece utilizzare il più amichevole comando adduser.
Sentiti libero di lasciare un commento in caso di domande.