• cerca

SEI GIA' REGISTRATO? EFFETTUA ADESSO IL LOGIN.



HAI DIMENTICATO LA PASSWORD? CLICCA QUI

NON SEI ANCORA REGISTRATO A WEBAREA? CLICCA QUI E REGISTRATI !

Gestire gli utenti in Linux: i comandi useradd, userdel, usermod

di :: 13 giugno 2018

Creare, eliminare e modificare utenti in Linux, con i comandi useradd userdel e usermod

Per poter accedere ad un sistema linux, in locale o in remoto, è necessario creare un utente, definendo una coppia nome utente e password.

I tre principali comandi usati per gestire gli utenti sono: useradd, userdel e usermod.

Creare un utente: useradd

Il comando useradd si utilizza per creare un nuovo utente.

E' sufficiente utilizzare useradd seguito dal nome utente che si vuole creare. Ad esempio se vogliamo creare l'utente pippo digiterò:

# useradd pippo

Utilizzando il comando useradd vengono eseguite, tra le altre, queste operazioni:

  • Vengono modificati i file /etc/passwd, /etc/shadow, /etc/group e /etc/gshadow per l'account utente appena creato.
  • Viene creata e popolata una directory "home" per il nuovo utente.
  • Vengono impostati i permessi e le proprietà sulla directory "home".

Dopo aver creato l'utente, dobbiamo assegnargli la password con il comando passwd seguito dal nome utente appena creato. Il sistema ci chiederà di inserire due volte la password.

# passwd pippo
Changing password for user pippo.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.

La password, criptata, viene salvata nel file "/etc/shadow".

Come detto, la creazione di un utente comporta la modifica del file "/etc/passwd". In particolare in questo file verrà aggiunto il nuovo utente (una riga per ogni utente creato) con una serie di informazioni a lui associate.

Questo è un esempio di riga contenuta del file "/etc/passwd" per il nuovo utente pippo

pippo:x:504:504:pippo:/home/pippo:/bin/bash

Vediamo nel dettaglio il suo contenuto

  • Username: è il nome utente, la cui lunghezza deve essere compresa tra 1 e 32 caratteri.
  • Password: la password dell'utente (o il carattere x) salvata nel file "/etc/shadow" in formato criptato.
  • User ID (UID): ogni utente ha un UID, User Identification Number. Di default l'UID 0 è assegnato all'utente root, e UID da 1 a 99 sono riservati ad utilizzi di sistema. Gli UID da 100 a 999 sono riservati agli account di sistema e gruppi. Nel nostro esempio è stato assegnato l'UID 504
  • Group ID (GID): è il Group ID (GID), o Group Identification Number, salvato nel file "/etc/group".
  • User Info: è un campo opzionale e può essere usato per indicare informazioni aggiuntive come il nome utente completo.
  • Home Directory: è il path assoluto alla home directory dell'utente.
  • Shell: è il path assoluto della shell dell'utente, ad esempio "/bin/bash".

Utilizzando il comando useradd, seguito semplicemente dal nome utente, senza opzioni, verranno assegnate alcune impostazioni di default come ad esempio la home directory, la shell, e il gruppo di appartenza. Le impostazioni di default vengono recuperate dal file "/etc/login.defs". Per conoscere queste impostazioni o apriamo questo file, oppure utilizziamo l'opzione "-D"

# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

E' tuttavia possibile personalizzale queste impostazioni utilizzando, assieme al comando useradd, alcune opzioni. Vediamo le principali.

Opzione "-d": con questa opzione è possibile definire la home directory dell'utente.
Di default, la directory home viene sempre creata, in quando così è definito nel file di configurazione "/etc/login.defs", e verrà creata sotto la directory "home" ed avrà, come nome, il nome dell'utente. Se vogliamo assegnare all'utente una home directory differente, ad esempio "/home/lamiadirectory", utilizziamo questa opzione:

# useradd -d /home/lamiadirectory pippo

Opzione "-M": non creare la home directory dell'utente

Per non creare la home directory dell'account utilizziamo questa opzione

# useradd -M pippo

Opzione "m": creare la home directory dell'utente

Di default, la directory home viene sempre creata, in quando così è definito nel file di configurazione "/etc/login.defs". Ma se questo file fosse configurato in modo da NON creare di default una home directory, questa opzione consente di creare la home directory. Ad esempio se voglio creare una home directory "/home/test" userò questo comando

# useradd -m -d /home/test pippo

Opzione "-g": assegnamo l'utente ad uno specifico gruppo (GID)

Per assegnare l'utente ad un determinato gruppo id (GID), ad esempio al gruppo "500", utilizziamo questo comando

# useradd -g 500 pippo

Opzione "-u": assegnamo uno specifico UID all'utente, ad esempio l'UID "1000"

# useradd -u 1000 pippo

Opzione -"s": assegnamo all'utente una specifica shell

Per ad esempio vogliamo assegnare all'utente la shell "/bin/csh" utilizziamo questo comando

# useradd -s "/bin/csh" pippo

Per NON assegnare una shell utilizziamo

# useradd -s "/sbin/nologin" pippo

Opzione "-e": definiamo la scadenza dell'account

Se ad esempio vogliamo che l'account scada il giorno 25/04/2019, utilizziamo questo comando (il formato è ANNO-MESE-GIORNO)

# useradd pippo -e 2019-04-25

Opzione "-f": assegnare una scadenza alla password

Con questa opzion è possibile assegnare una scadenza alla password assegnata all'utente. In questo esempio scadrà tra 6 giorni.

# useradd pippo -f 6

Per avere informazioni in merito alla password utilizziamo il comando "chage -l" seguito dal nome account a cui siamo interessati:

# chage -l pippo
Last password change                                    : Jun 20, 2018
Password expires                                        : never
Password inactive                                       : never
Account expires                                         : Jul 01, 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

Abbiamo visto come usare le opzioni singolarmente, ma ovviamente in fase di creazione di un account possiamo combinare assieme tutte queste opzioni, ad esempio così

# useradd pippo -d /home/lamiadirectory -g 500 -u 1000 -s "/sbin/nologin" -e 2019-04-25 -f 6

Per l'elenco completo delle opzioni si rimanda al manuale di useradd

NOTA: in Linux esiste anche il comando adduser, simile a useradd, perché è un collegamento simbolico ad esso.

Usermod: modificare un utente

Questo comando ha un utilizzo similare ad useradd, con la differenza che agisce su un account già creato e lo modifica. Le opzioni sono le medesime di useradd.

Ad esempio se voglio modificare la home directory dell'utente "pippo" lo utilizzerò così

# usermod -d /home/newpippo pippo

In aggiunta abbiamo altre opzioni tra cui quella per bloccare un account "-L" (lock) e sbloccare un account bloccato "-U" (unlock)

Ad esempio per bloccare l'utente pippo:

# usermod -L pippo

E per sbloccarlo:

# usermod -U pippo

Userdel: cancellazione di un utente

Per rimuovere un account è sufficiente utilizzare il comando "userdel" seguito dal nome utente da cancellare

# userdel pippo

Questo comando tuttavia non cancella la home directory dell'utente. Per cancellarla, assieme a tutto il suo contenuto, utilizziamo l'opzione "-r"

# userdel -r pippo

Se l'utente fosse loggato mentre vogliamo cancellare il suo account, invece di "-r" utilizziamo l'opzione "-f"

# userdel -f pippo
x

ATTENZIONE