Questo capitolo tratta alcune cose che dovete sapere ora che avete la Shadow Suite installata sul vostro sistema. Ulteriori informazioni sono contenute nelle pagine di manuale per ogni comando.
La Shadow Suite ha aggiunto i seguenti comandi orientati a linea di comando per aggiungere, modificare, e cancellare utenti. Potreste anche aver installato il programma adduser
.
Il comando useradd
può essere usato per aggiungere utenti al sistema. Potete anche invocare questo comando per cambiare le impostazioni predefinite.
La prima cosa che dovreste fare è esaminare le impostazioni predefinite e apportare cambiamenti specifici per il vostro sistema:
useradd -D
GROUP=1 HOME=/home INACTIVE=0 EXPIRE=0 SHELL= SKEL=/etc/skel
Le impostazioni predefinite probabilmente non sono quelle che volete, perciò se cominciaste ad aggiungere utenti adesso dovreste specificare tutte le informazioni per ciascun utente. Comunque, possiamo e dovremmo cambiare i valori predefiniti.
Sul mio sistema:
/bin/bash
useradd -D -g100 -e60 -f0 -s/bin/bash
Ora eseguendo useradd -D
darà:
GROUP=100 HOME=/home INACTIVE=0 EXPIRE=60 SHELL=/bin/bash SKEL=/etc/skel
Solo nel caso voleste saperlo, questi valori predefiniti sono contenuti nel file /etc/default/useradd
.
Ora potete usare useradd
per aggiungere utenti al sistema. Per esempio, per aggiungere l'utente fred
, usando i valori predefiniti, dovreste fare come segue:
useradd -m -c "Fred Flintstone" fred
Questo creerà la voce seguente nel file /etc/passwd
:
fred:*:505:100:Fred Flintstone:/home/fred:/bin/bash
E la voce seguente nel file /etc/shadow
:
fred:!:0:0:60:0:0:0:0
Verrà creata la home directory di fred
e il contenuto di /etc/skel
sarà copiato là grazie all'opzione -m
.
Inoltre, dato che non abbiamo specificato un UID, è stato usato il primo disponibile.
L'account di fred
è stato creato, ma fred
non sarà ancora in grado di collegarsi fino a quando sbloccheremo l'account. Facciamo questo cambiando la password.
passwd fred
Changing password for fred Enter the new password (minimum of 5 characters) Please use a combination of upper and lower case letters and numbers. New Password: ******* Re-enter new password: *******
Cambio la password di fred Inserire la nuova password (minimo 5 caratteri) Per favore, utilizzare una combinazione di maiuscole, minuscole e cifre. Nuova Password: ******* Reinserire la nuova password: *******
/etc/shadow
conterrà:
fred:J0C.WDR1amIt6:9559:0:60:0:0:0:0
E fred
potrà ora collegarsi ed usare il sistema. La cosa bella di useradd
e degli altri programmi che vengono forniti con la Shadow Suite è che fanno cambiamenti ai file /etc/passwd
e /etc/shadow
in modo non interrompibile. Perciò , se state aggiungendo un utente, e contemporaneamente un altro utente sta cambiando la sua password, entrambe le operazioni verranno eseguite correttamente.
Dovreste usare i comandi forniti anziché editare direttamente /etc/passwd
e /etc/shadow
. Se voi editaste il file /etc/shadow
, e un utente cambiasse la sua password mentre voi state editando, e poi voi salvaste il file che stavate editando, il cambiamento della password dell'utente andrebbe perso.
Qui c'è un piccolo script interattivo che aggiunge utenti usando useradd
e passwd
:
#!/bin/bash # # /sbin/newuser - Uno script per aggiungere utenti al sistema usando i # comandi useradd e passwd della Shadow Suite. # # Scritto da Mike Jackson <mhjack@tscnet.com> come esempio per il # Linux Shadow Password Howto. Viene esplicitamente concesso il # permesso di usarlo e modificarlo. # # Questo potrebbe essere modificato per mostrare i valori predefiniti # e permettere modifiche simili al programma Slackware # adduser. Potrebbe essere modificato per non permettere voci stupide # (i.e. miglior controllo degli errori). # ## # Valori predefiniti per il comando useradd ## GROUP=100 # Gruppo predefinito HOME=/home # Collocazione della home directory (/home/nomeutente) SKEL=/etc/skel # Struttura tipica di una nuova directory home. INACTIVE=0 # Giorni tra la scadenza della password e la # disabilitazione dell'account (0 = mai) EXPIRE=60 # Durata della password in giorni SHELL=/bin/bash # Shell predefinita (intero percorso) ## # Valori predefiniti per il comando passwd ## PASSMIN=0 # Giorni tra i cambiamenti della password PASSWARN=14 # Giorni prima che scada la password in cui viene # dato un avviso ## # Assicurarsi che sia root ad eseguire lo script. ## WHOAMI=`/usr/bin/whoami` if [ $WHOAMI != "root" ]; then echo "Devi essere root per aggiungere nuovi utenti!" exit 1 fi ## # Chiedere il nome utente e il nome completo. ## echo "" echo -n "Nome utente: " read USERNAME echo -n "Nome completo: " read FULLNAME # echo "Aggiunta dell'utente: $USERNAME." # # Notate che le "" intorno a $FULLNAME sono richieste perché # questo campo quasi sempre conterrà almeno uno spazio, e senza # le " il comando useradd, quando raggiunge il carattere SPAZIO, # penserebbe che vi stiate spostando sul prossimo parametro. # /usr/sbin/useradd -c"$FULLNAME" -d$HOME/$USERNAME -e$EXPIRE \ -f$INACTIVE -g$GROUP -m -k$SKEL -s$SHELL $USERNAME ## # Impostare i valori predefiniti per le password ## /bin/passwd -n $PASSMIN -w $PASSWARN $USERNAME >/dev/null 2>&1 ## # Lascia che il comando passwd chieda la password (due volte) ## /bin/passwd $USERNAME ## # Mostra ciò che è stato fatto. ## echo "" echo "Voce di /etc/passwd:" echo -n " " grep "$USERNAME:" /etc/passwd echo "Voce di /etc/shadow:" echo -n " " grep "$USERNAME:" /etc/shadow echo "Riassunto dei risultati del comando passwd:" echo -n " " passwd -S $USERNAME echo ""
Usare uno script per aggiungere utenti è davvero molto più preferibile che editare direttamente i file /etc/passwd
o /etc/shadow
o usare un programma come il programma Slackware adduser
. Sentitevi liberi di usare e modificare questo script per il vostro particolare sistema.
Per maggiori informazioni su useradd
vedere la pagina di manuale in linea.
Il programma usermod
viene usato per modificare le informazioni su un utente.
Le opzioni sono simili a quelle del programma useradd
.
Diciamo che volete cambiare la shell di fred
, fareste ciò che segue:
usermod -s /bin/tcsh fred
Ora la voce di fred
nel file /etc/passwd
sarebbe diventata questa:
fred:*:505:100:Fred Flintstone:/home/fred:/bin/tcsh
Facciamo in modo che l'account di fred
scada il 09/15/97:
usermod -e 09/15/97 fred
Ora la voce di fred
in /etc/shadow
diventa:
fred:J0C.WDR1amIt6:9559:0:60:0:0:10119:0
Per maggiori informazioni sul comando usermod
vedere la pagina di manuale in linea.
userdel
fa proprio quello che vi aspettate, cancella l'account dell'utente.
Semplicemente usate:
userdel -r nomeutente
Il -r
fa sì che tutti i file nella home directory dell'utente vengano cancellati insieme alla home directory stessa. I file collocati in altri file system dovranno essere cercati e cancellati manualmente.
Se volete semplicemente bloccare l'account invece che cancellarlo, usate piuttosto il comando passwd
.
Il comando passwd
ha l'ovvio uso di cambiare le password.
Inoltre, viene usato dall'utente root per:
-l
e -u
)-x
)-n
)-w
)-i
)-S
)Per esempio, diamo ancora un'occhiata a fred
passwd -S fred
fred P 03/04/96 0 60 0 0
Questo significa che la password di fred
è valida, che è stata cambiata l'ultima volta il 03/04/96, che può essere cambiata in qualunque momento, scade dopo 60 giorni, fred non sarà avvertito e l'account non verrà disabilitato quando la password scadrà.
Questo semplicemente significa che se fred
si collega dopo che la password scade, al collegamento gli verrà richiesta una nuova password.
Se decidiamo che vogliamo avvertire fred
14 giorni prima che la sua password scada e inattivare il suo account 14 giorni dopo che lui la lascia scadere, dovremo fare quanto segue:
passwd -w14 -i14 fred
Ora fred
è diventato:
fred P 03/04/96 0 60 14 14
Per ulteriori informazioni sul comando passwd
vedere le pagine di manuale in linea.
Il file /etc/login
è il file di configurazione per il programma login
e anche per l'intera Shadow Suite.
/etc/login
contiene impostazioni che riguardano dall'aspetto del prompt fino alla scadenza predefinita quando un utente cambia la sua password.
Il file /etc/login.defs
è abbastanza ben documentato dai commenti contenuti al suo interno. Comunque, ci sono alcune cose da notare:
Dalla lista sopra potete vedere che questo è un file abbastanza importante, e dovreste essere sicuri che sia presente, e che le impostazioni siano quelle che desiderate per il vostro sistema.
Il file /etc/groups
può contenere password che permettono ad un utente di diventare membro di un particolare gruppo. Questa funzione è abilitata se definite la costante SHADOWGRP
nel file /usr/src/shadow-AAMMGG/config.h
.
Se definite questa costante e poi compilate, dovete creare un file /etc/gshadow
che contenga le password del gruppo e le informazioni di amministrazione del gruppo.
Quando avete creato /etc/shadow
, avete usato un programma chiamato pwconv
, non c'è nessun programma equivalente per creare il file /etc/gshadow
, ma in realtà non importa, se ne occupa lui stesso.
Per creare il file iniziale /etc/gshadow
fate come segue:
touch /etc/gshadow
chown root.root /etc/gshadow
chmod 700 /etc/gshadow
Una volta che create nuovi gruppi, questi verranno aggiunti ai file /etc/group
e /etc/gshadow
. Se voi modificate un gruppo aggiungendo o togliendo utenti o cambiando la password del gruppo, il file /etc/gshadow
verrà modificato.
I programmi groups
, groupadd
, groupmod
, e groupdel
sono forniti come parte della Shadow Suite per modificare i gruppi.
Il formato del file /etc/group
è quello che segue:
nomegruppo:!:GID:membro,membro,...
Dove:
nomegruppo
Il nome del gruppo
!
Il campo che normalmente contiene la password, che ora è però situata nel file /etc/gshadow
GID
L'identificativo numerico del gruppo
membro
Elenco dei membri del gruppo
Il formato del file /etc/gshadow
è quello che segue:
nomegruppo:password:ammin,ammin,...:membro,membro,...
Dove:
nomegruppo
Il nome del gruppo
password
La password del gruppo codificata
ammin
Elenco degli amministratori del gruppo
membro
Elenco dei membri del gruppo
Il comando gpasswd
è usato solo per aggiungere o togliere amministratori e membri a o da un gruppo. Solo root
o qualcuno appartenente all'elenco degli amministratori può aggiungere o togliere membri del gruppo.
La password del gruppo può essere modificata con il comando passwd
da root o chiunque appartenga alla lista degli amministratori del gruppo.
Nonostante il fatto che attualmente non ci sia una pagina di manuale per gpasswd
, digitando gpasswd
senza alcun parametro si ottiene un elenco di opzioni. È abbastanza semplice capire come funziona il tutto una volta che avete capito i formati dei file e i concetti.
Il programma pwck
viene fornito per offrire un controllo di consistenza sui file /etc/passwd
e /etc/shadow
. Esso controllerà ogni nome utente e verificherà che abbia quanto segue:
Darà anche un avvertimento per ogni account privo di password.
È una buona idea eseguire pwck
dopo aver installato la Shadow Suite. È anche una buona idea eseguirlo periodicamente, magari una volta alla settimana o al mese. Se usate l'opzione -r
, potete usare cron
per eseguirlo con una cadenza regolare e riceverne per posta il rapporto.
grpck
è il programma per il controllo della consistenza per i file /etc/group
and /etc/gshadow
. Esso esegue i seguenti controlli:
Dispone anche dell'opzione -r
per rapporti automatizzati.
Le password di dial-up sono un altro strumento opzionale di difesa per i sistemi che permettono l'accesso tramite una linea telefonica commutata. Se avete un sistema che permette a molte persone di connettersi localmente o tramite una rete, ma volete porre dei limiti su chi possa accedere per telefono e connettersi, allora le password di dial-up fanno al caso vostro. Per abilitare le password di dial-up, dovete editare il file /etc/login.defs
ed assicurarvi che DIALUPS_CHECK_ENAB
sia impostato a yes
.
Due sono i file che contengono informazioni di dial-up: /etc/dialups
che contiene le tty (una per riga, senza la parte iniziale /dev). Se una tty compare nella lista, allora vengono effettuati i controlli di dial-up.
Il secondo file è /etc/d_passwd
. Questo file contiene il percorso completo di una shell, seguito da una password opzionale.
Se un utente si collega attraverso una tty elencata in /etc/dialups
, e la sua shell è presente nel file /etc/d_passwd
gli sarà permesso l'accesso solo se fornirà la corretta password.
Un altro utile scopo per usare password di dial-up potrebbe essere quello di impostare una linea che permetta solo un certo tipo di connessione (come una connessione PPP o UUCP). Se un utente cerca di ottenere un altro tipo di connessione (i.e. un elenco di shell), deve conoscere una password per usare la linea.
Prima che possiate usare la caratteristica del dial-up, dovete creare i file.
Viene fornito il comando dpasswd
per assegnare password per le shell nel file /etc/d_passwd
. Vedere la pagina di manuale per ulteriori informazioni.