Introduzione
Linux è un ambiente multiutente e il provisioning degli utenti è una responsabilità essenziale nella gestione del sistema. Gli amministratori di sistema aggiungono, eliminano e gestiscono utenti e gruppi nel sistema.
Il useradd
comando fornisce varie opzioni, risultando in un modo completo per automatizzare l'identità e la gestione degli accessi.
Questo articolo mostra come creare e aggiungere utenti in Linux.
Prerequisiti
- Accesso al terminale per eseguire i comandi.
- Accesso a un utente con autorizzazioni sudo o root.
- Un editor di testo, come nano o Vim.
- Comandi di base di Linux (prendi il nostro cheat sheet dei comandi di Linux).
useradd sintassi del comando
La sintassi di base per useradd
il comando è:
useradd <options> <username>
L'esecuzione del comando crea un nuovo account utente o aggiorna un utente esistente in base ai valori in:
- /etc/default/useradd - I valori predefiniti per
useradd
comando. - /etc/login.defs - Valori di controllo della configurazione per il pacchetto di accesso.
- Il
<options>
forniti con il comando, che aggiornano o sovrascrivono la configurazione predefinita.
I valori predefiniti variano tra i diversi sistemi.
Le regole limitano il nome utente a:
- Lunghezza compresa tra 1 e 32 caratteri.
- Il nome utente inizia con una lettera minuscola o un trattino basso.
- Il nome utente può contenere qualsiasi combinazione di lettere maiuscole e minuscole, numeri, trattini e trattini bassi.
- Il nome utente può terminare con il simbolo del dollaro (
$
).
L'espressione regolare per controllare la validità del nome utente è:
[a-z_][a-z0-9_-]*[$]
Nota: Debian segue un diverso insieme di regole per i nomi utente. Tuttavia, le regole fornite sono un buon punto di partenza per tutti i sistemi per evitare problemi.
Inoltre, il comando crea anche un gruppo per il nuovo utente. L'aggiunta di un nuovo utente richiede le autorizzazioni sudo per modificare i file per la memorizzazione delle informazioni sull'utente e sul gruppo.
opzioni comando aggiungi utente
Il useradd
comando viene fornito con varie opzioni. Le opzioni comuni sono nella tabella seguente:
Opzione | Descrizione |
---|---|
-b <directory> --base-dir <directory> | Imposta una directory di base predefinita per il sistema. |
-c <information> --comment <information> | Imposta una breve descrizione dell'utente, come il nome completo o il ruolo. |
-d <home directory> --home-dir <home directory> | La directory di accesso dell'utente. |
-D --defaults | Visualizza i valori predefiniti o li modifica se combinati con altre opzioni. |
-e <YY-MM-DD> --expiredate <YY-MM-DD> | La data di scadenza dell'account utente. |
-f <days> --inactive <days> | Imposta il tempo in giorni in cui l'account diventa inattivo dopo la scadenza della password. |
-g <name or number> --gid <name or number> | Definisce il gruppo di accesso iniziale dell'utente. |
-G <group1,group2,etc> --groups <group1,group2,etc> | Aggiunge l'utente ad altri gruppi. |
-k <skeleton directory> --skel <skeleton directory> | Copia file e directory nella directory home dell'utente. |
-m --create-home | Crea una home directory per un utente se non esiste. |
-M --no-create-home | Non crea una home directory (sostituisce le impostazioni di sistema). |
-o --non-unique | Si combina con -u per consentire UID duplicati. |
-p <password> --password <password> | Imposta la password dell'utente (non consigliato). |
-r --system | Aggiunge un account di sistema. |
-s <shell path> --shell <shell path> | Definisce la shell di accesso dell'utente. |
-u <uid> --uid <uid> | ID valore numerico univoco. |
-U --user-group | Crea un gruppo con lo stesso nome dell'utente e aggiunge l'utente al gruppo. |
Creazione di nuovi utenti in Linux
La creazione di nuovi utenti in Linux effettua le seguenti operazioni:
1. Fornisce un UID e un GID univoci .
- 0 è riservato per root e assegnato automaticamente.
- 1-999 è per account di sistema e servizi.
- 1000 e superiori sono per utenti regolari.
Nota: I numeri variano tra i diversi sistemi operativi. I valori di esempio sono per Ubuntu.
2. Modifica i file che memorizzano le informazioni sull'account.
- /etc/passwd - Elenca tutti gli utenti registrati sul sistema.
- /etc/shadow - Memorizza le password utente crittografate.
- /etc/group - Definisce i gruppi di utenti.
- /etc/gshadow - Memorizza le password di gruppo crittografate.
3. Imposta le autorizzazioni utente sulla home directory tramite il gruppo.
Nota: Linux fornisce anche un comando per modificare gli utenti esistenti con usermod.
Segui gli esempi seguenti per vedere come aggiungere utenti in Linux.
Aggiunta di un utente in Linux
Per aggiungere un utente in Linux, esegui il seguente comando nel terminale:
sudo useradd <username>
Se richiesto, inserisci la password sudo per continuare.
Senza alcuna opzione, il useradd
Il comando aggiunge un utente in base alle opzioni predefinite in /etc/useradd file. Il nuovo utente è in uno stato bloccato e richiede una password per sbloccarlo. Usa il comando passwd per sbloccare l'account:
sudo passwd <username>
Il comando richiede di inserire e confermare la password.
Nota: Le password sono un aspetto importante della sicurezza. Consulta la nostra guida per idee per password complesse.
Dopo aver creato una password, viene visualizzata automaticamente una nuova voce in /etc/passwd file. Per visualizzare le informazioni, visualizzare il file con il comando cat e grep per l'utente:
sudo cat /etc/passwd | grep <username>
I campi sono nel seguente formato:
username:password:UID:GID:info:/home/directory:shell/path
Il x
il carattere rappresenta e nasconde la password dell'utente per motivi di sicurezza. La password crittografata si trova in /etc/shadow file.
Aggiunta di un utente in Linux e creazione della home directory
Per impostazione predefinita, il useradd
comando non crea una home directory. Il /etc/passwd il file mostra un collegamento assoluto (/home//
) dopo aver effettuato l'accesso.
Per creare automaticamente un utente e la home directory, utilizza il -m
opzione:
sudo useradd -m <username>
Controlla se la directory esiste con il comando ls:
ls -lah /home/<username>
La directory contiene i file di inizializzazione copiati da /etc/skel directory.
Aggiunta di un utente con una directory principale specifica
Per aggiungere un utente in Linux con una directory home specifica, usa il -m
opzione con -d
e fornisci il percorso della directory:
sudo useradd -m -d <path> <username>
Il useradd
Il comando avverte che la directory esiste già e non copia i file da /etc/skel . Usa questa opzione per creare una home directory personalizzata o condivisa.
Aggiunta di un utente senza Home Directory
Se /etc/login.defs configurazione CREATE_HOME
il valore della variabile è yes
, il useradd
comando crea automaticamente una directory home.
Per ignorare le impostazioni predefinite e aggiungere un utente senza una home directory, utilizza il -M
opzione:
sudo useradd -M <username>
Il comando aggiunge l'utente senza creare una home directory, sovrascrivendo le impostazioni predefinite.
Aggiunta di un utente con ID utente specifico
Per aggiungere un utente con un ID utente specifico, utilizza il -u
tagga e fornisci l'UID:
sudo useradd -u <uid> <username>
Se l'UID non è univoco, il terminale emette un messaggio e non aggiunge l'utente. Verifica l'UID con il id
comando:
id <username>
Utilizza un UID superiore a 1000 per indicare un utente normale.
Aggiunta di un utente con ID gruppo specifico
Per creare un utente e aggiungerlo a un gruppo specifico, utilizza il -g
tag:
sudo useradd -g <group name or GID> <username>
Il nome del gruppo o GID deve esistere. In caso contrario, il comando genera un errore. Verifica il GID dell'utente con:
id <username>
L'output stampa l'ID del gruppo dell'utente.
Aggiunta di un utente a più gruppi
Aggiungi un utente a più gruppi con il -G
opzione ed elenca i nomi dei gruppi o i GID in un elenco separato da virgole, seguito dal nome utente. Ad esempio:
sudo useradd -G <group1,group2,group3> <username>
Controlla i gruppi dell'utente con:
id <username>
I gruppi devono esistere e l'elenco non deve contenere spazi. Il comando non aggiunge l'utente se non esistono gruppi.
Nota: Per aggiungere un utente esistente a un gruppo, consulta la seguente guida:Come aggiungere un utente a un gruppo in Linux.
Aggiunta di un utente con una specifica shell di accesso
Ogni nuovo utente ottiene una shell di accesso predefinita (come Bourne shell o Bourne Again Shell). Per definire in modo esplicito la shell dell'utente, aggiungi il -s
tag e fornisci il percorso della shell:
sudo useradd -s <shell path> <username>
Ad esempio, per aggiungere un utente e impostare Bash come shell di accesso predefinita, esegui:
sudo useradd -s /bin/bash <username>
Controlla /etc/passwd per confermare la selezione della shell:
cat /etc/passwd | grep <username>
Il campo finale mostra la shell di accesso per il nuovo utente.
Aggiunta di un utente con un commento specifico
Per aggiungere un utente con un commento specifico, esegui:
sudo useradd -c <comment> <username>
Per visualizzare il commento, controlla /etc/passwd file e grep per l'utente:
sudo cat /etc/passwd | grep <username>
Il commento è solo a scopo descrittivo e non ha funzionalità effettive.
Aggiunta di un utente con data di scadenza dell'account
Aggiungi un utente con una data di scadenza dell'account per eliminare automaticamente l'account dopo la data indicata:
sudo useradd -e <YY-MM-D> <username>
Visualizza le informazioni sulla scadenza dell'account con:
sudo chage -l <username>
L'output stampa la data di scadenza dell'account (Account expires
). Usa questa opzione per gli account temporanei.
Aggiunta di un utente con un periodo di disattivazione
Se un utente ha impostato una scadenza per la password, il useradd
il comando consente di indicare un periodo prima che l'account si disattivi dopo la scadenza. Se un account scade, il periodo di scadenza consentirà agli utenti di modificare la propria password e riattivare l'account.
Usa il -f
comando e aggiungi il numero di giorni:
sudo useradd -f <days> <username>
Ad esempio, per disattivare un account tre giorni dopo la scadenza della password, eseguire:
sudo useradd -f 3 <username>
Visualizza le informazioni sulla scadenza con:
sudo cat /etc/shadow | grep <username>
Il /etc/shadow file memorizza le informazioni sulla password, incluso il tempo di inattività (terz'ultimo campo).
Utilizza questo metodo per disattivare gli utenti che non cambiano la password entro il periodo di tempo indicato.
Il periodo di disattivazione è una buona misura di sicurezza e la durata consigliata è di 35 giorni. I requisiti aziendali determinano la durata perfetta prima della scadenza dell'account. Se il valore è troppo basso, le conseguenze sono costose per un amministratore, mentre un valore elevato incide sulla sicurezza.
Aggiunta di un utente di sistema
Programmi e sistemi creano account utente di sistema, che sono diversi dagli utenti normali. Programmi come MySQL o Tomcat richiedono un account utente univoco per funzionare sul sistema e i demoni in genere creano utenti di sistema durante l'installazione.
Per creare un utente di sistema, utilizza il -r
opzione:
sudo useradd -r <username>
Controlla le informazioni dell'utente con:
sudo cat /etc/passwd | grep <username>
L'utente ha un UID inferiore a 1000, a indicare che è un utente di sistema.
Il comando adduser
Il adduser
command è un modo alternativo per aggiungere utenti a un sistema Linux e funge da semplice front-end interattivo per useradd
.
Per aggiungere un utente, esegui:
sudo adduser <username>
Il comando stampa l'utente e il gruppo sulla console.
Successivamente, il comando richiede quanto segue:
- Password, che deve essere reinserita per continuare.
- Informazioni utente. I dati fungono da commento (come
useradd -c
comando e opzione).
Premi Y per completare il processo. In caso di errore, premi N e reinserire le informazioni corrette.
Controlla i parametri dal adduser
comando con:
sudo cat /etc/passwd | grep <username>
Il comando aggiunge tutti i valori inseriti durante l'esecuzione del comando e la shell Bash per impostazione predefinita.
Aggiungi più utenti
Il useradd
e adduser
i comandi non supportano l'aggiunta di più utenti contemporaneamente. Per aggiungere più utenti, usa un ciclo Bash for in uno script o direttamente nel terminale per scorrere un elenco di nomi utente.
Nota: Scopri quali sono le differenze tra i comandi useradd e adduser.
Ad esempio, per aggiungere dieci utenti, procedi come segue:
1. Crea un file di testo utilizzando un editor di testo:
nano user_list.txt
2. Aggiungi i nomi utente al file, inserendo ciascuno su una nuova riga. Ad esempio:
alice
bob
charlie
dave
Salva il file e chiudi nano (CTRL +X , S , quindi Invio ).
3. Usa un for
scorrere per elencare i nomi nel file ed eseguire useradd
su ciascuno:
for i in `cat ~/user_list.txt` ; do useradd $i ; done
4. Mostra gli utenti creati con:
for i in `cat ~/user_list.txt` ; do id $i ; done
Per aggiungere password, scambia il comando nel do
clausola con passwd
e inserire la password per ogni utente. In alternativa, utilizza il comando Expect per automatizzare il processo di creazione della password, soprattutto se lavori con un numero elevato di utenti.
Conclusione
Dopo aver completato questa guida, sai come aggiungere nuovi utenti a un sistema Linux con il useradd
comando.
Quindi, leggi la gestione degli accessi privilegiati e come aiuta a ridurre gli attacchi alla sicurezza e le violazioni dei dati.