Avanti Indietro Indice

7. Mettere al lavoro la Shadow Suite

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.

7.1 Aggiungere, Modificare e Cancellare utenti

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.

useradd

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:

Per fare questi cambiamenti userei:
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: *******

Che, in italiano, sarebbe qualcosa del genere:
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: *******

Ora /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.

usermod

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 frednel 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

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.

7.2 Il comando passwd e l'invecchiamento delle password

Il comando passwd ha l'ovvio uso di cambiare le password. Inoltre, viene usato dall'utente root per:

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.

7.3 Il file login.defs

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.

7.4 Password di gruppo

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.

7.5 Programmi per il controllo della consistenza

pwck

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

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.

7.6 Password di dial-up

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.


Avanti Indietro Indice