PREV
Capitolo 11 - Controllo dei Processi
NEXT
Capitolo 13 - Comandi Base per la Rete

Torna all'indice

Capitolo 12. Strumenti di Amministrazione Essenziali

Sei amministratore di ogni computer dove sei root. Questa potrebbe essere la tua desktop box con uno o due utenti, o potrebbe essere un grande server con centinaia di utenti. Indipendentemente dal sistema, hai bisogno di sapere come gestire gli utenti e come spegnere correttamente il sistema. Sembrano entrambe procedure semplici ma è bene prendere qualche accorgimento. In aggiunta, è bene conoscere come funziona il sistema di autentificazione.

top
Torna all'indice

Utenti e gruppi

Script forniti

Il modo più semplice di gestire utenti e gruppi è con gli script e i programmi forniti. Slackware include i programmi adduser, userdel(8), chfn(1), chsh(1), e passwd(1) per gestire gli utenti. Slackware include groupadd(8), groupdel(8), e groupmod(8) per gestire i gruppi. Eccetto chfn, chsh, e passwd, questi sono programmi che possono essere eseguiti solo da root e sono posizionati in /usr/sbin. chfn, chsh, e passwd possono essere eseguiti da chiunque e sono posizionati in /usr/bin.

Gli utenti sono aggiunti con il programma adduser. Cominceremo visualizzando l'intera procedure, mostrando tutte le domande richieste e una breve descrizione di cosa significano. La risposta di default è contenuta in parentesi e può essere scelta per tutte le domante, a meno che tu non voglia cambiare qualcosa.


# adduser
Login name for new user (8 characters or less) []: jellyd


Questo è il nome che l'utente dovrà usare per loggarsi. Dovrebbe essere minore di 8 caratteri, perchè tutte le utility di login richiedono che sia così. Generalmente dovresti usare solo caratteri minuscoli, a meno che tu non voglia scrivere maiuscolo in posti non convenienti.

User id for jellyd [ defaults to next available]:


Questo user ID (UID) indica come la prorietà dei file viene determinata in Linux. Ogni utente ha un numero unico, a partire da 1000 in Slackware. Puoi prendere un UID per il nuovo utente o puoi lasciare che adduser assegni il prossimo libero.

Initial group for jellyd [users]:


Tutti gli utenti sono posizionati nel gruppo "users" di default. Potresti voler mettere il nuovo utente in un altro gruppo ma non è raccomandato.

Additional groups for jellyd (seperated with commas, no spaces) []:


Questa domanda ti consente di mettere il nuovo utente in un gruppo addizionale. E' possibile per un utente essere in diversi gruppi allo
stesso tempo. Questo è utile quando hai stabilito gruppi per cose come modificare siti web, giocare, e così via.


jellyd's home directory [/home/jellyd]:


Le directory Home di default sono messe sotto /home. Se gestisci un sistema molto grande, è possibile che tu abbia mosso le directory home in uno schema differente. Questo ti consente di cambiare la directory dove sarà posizionata la home dell'utente. Puoi disabilitare un account cambiando la home directory con qualcosa del tipi /bin/false ma non è il metodo raccomandato.


jellyd's shell [/bin/bash]:


bash è la shell di default per Slackware Linux, ed è perfetta per la maggioranza degli utenti. Se il tuo nuovo utente proviene da Unix, potrebbe trovare familiare una shell diversa. Puoi cambiare la loro shell ora, o la possono cambiare da soli usando il comando chsh.


jellyd's account expiry date (YYYY-MM-DD) []:


Gli account possono essere impostati per scadere in una data specifica. Di default, non è prevista una data di scadenza. Puoi modificarlo, se vuoi. Questa opzione può essere utile per le persone che gestiscono un ISP e vogliono che un account scada dopo una certa data, a meno che non ricevano il pagamento.


OK, I'm about to make a new account. Here's
what you entered so far:

New login name: jellyd
New UID: [Next available]
Initial group: users
Additional groups: [none]
Home directory: /home/jellyd
Shell: /bin/bash
Expiry date: [no expiration]

This is it... if you want to bail out, hit Control-C.
Otherwise, press ENTER to go ahead and make the account.


Ora puoi vedere tutte le informazioni inserite per il nuovo account, e ti viene data la possibilità di fermarti. Se hai inserito qualcosa di sbagliato, devi premere Control-C e ricominciare. Altrimenti, puoi premere enter e verrà creato l'account.

Making new account...

Changing the user information for jellyd
Enter the new value, or press return for the default
Full Name []: Jeremy
Room Number []: Smith 130
Work Phone []:
Home Phone []:
Other:


Tutte queste informazioni sono opzionali. Non devi inserire niente se non vuoi farlo, e l'utente può cambiarle a suo piacimento usando il comando chfn. Comunque, potrebbe essere utile inserire almeno il nome completo e il numero di telefono, per contattare eventualmente la persona.

Changing password for jellyd
Enter the new password (minimum of 5, maximum of 127 characters)
Please use a combination of upper and lower case letters and numbers.
New password:
Re-enter new password:
Password changed.
Done...


Devi inserire una password per il nuovo utente. Generalmente, se il nuovo utente non è fisicamente presente a questo punto, potresti inserire una password di default e dire all'utente di cambiarla in qualcosa di più sicuro.

top
Torna all'indice

Scegliere una password

Avere una password sicura è la prima linea di difesa contro i cracker. Tu non vuoi una password facile da indovinare, perchè questo rende facile per qualcuno entrare nel tuo sistema. Idealmente, una password sicura dovrebbe essere una stringa casuale di caratteri, includendo caratteri maiuscoli e minuscoli, numeri e caratteri speciali. Ricorda solo che il carattere tab potrebbe non essere un'ottima scelta, a seconda del computer dal quale ti stai loggando.
In generale, usa il buon senso: non prendere una password che è il compleanno di qualcuno, una frase comune, qualcosa trovato sulla scrivania o qualcos'altro facilmente associabile a te. "secure1" è ad esempio una cattiva password.

Rimuovere gli utenti non è affatto difficile. Devi solo avviare userdel con il nome dell'account da rimuovere. Devi essere sicuro che l'utente non sia loggato, e che non ci siano processi di tale utente. Ricorda inoltre che una volta che hai cancellato l'utente, egli non può più accedere.

# userdel jellyd


Fare questo vuol dire rimuovere "jellyd" dal tuo sistema. Questo rimuove l'utente dai file /etc/passwd e /etc/group, ma non rimuove la home dell'utente. Se vuoi rimuovere la home directory, dovrai applicare la procedure seguente:

# userdel -r jellyd


Come disabilitare temporaneamente un utente verrà trattato nella sezione chiamata Changing Passwords, poichè tale procedura coinvolge la modifica delle password di utente. Come cambiare le informazioni di un account verrà trattato nella sezione Changing Password e nella sezione Changing user information.

I programmi per aggiungere e rimuovere i gruppi sono molto semplici. groupadd aggiungerà una nuova riga al file /etc/group con un group ID unico, mentre groupdel rimuoverà il gruppo specificato. Devi semplicemente editare /etc/group per aggiungere utenti ad uno specifico gruppo.

Puoi creare un gruppo così:

# groupadd cvs


e rimuoverlo così:

# groupdel cvs


top
Torna all'indice

A mano

Naturalmente, è possibile aggiungere, modificare e rimuovere utenti e gruppo a mano. Dopo aver osservato questa procedura, probabilmente troverai più conveniente usare gli script, forse.

Primo, aggiungeremo un nuovo utente ai file /etc/passwd(5), /etc/shadow(5), e /etc/group(5). Il file passwd mantiene alcune informazioni riguardanti l'utente, ma (abbastanza stranamente) non la password. Il file passwd deve essere leggibile da chiunque, ma non vogliamo che le password crittate siano leggibili da tutti perchè questo darebbe ai cracker un buon posto da dove cominciare. Per cui le password crittate sono mantenute nel file shadow, che è leggibile solo da root, e la passowrd di ognuno inserita del file passwd è "x". Il file group elenca tutti i gruppi e chi è nei gruppi.

Andiamo avanti ed esaminiamo il file /etc/passwd e capiamo come aggiungere qualcuno. Una riga tipica di passwd è questa:

chris:x:1000:100:Chris Lumens,Room 2,,:/home/chris:/bin/bash


Ogni linea è un entry per una persona e ogni campo su ogni linea è separato da una colonna. I campo sono il nome di login, la password crittata ("x" per chiunque in un sistema Slackware, poichè utilizziamo il sistema shadow password), User ID, Group ID, le informazioni opzionali per il finger separate da virgole, la home directory, e la shell. Quello che dobbiamo fare è aggiungere una nuova linea, riempiendo i campi con le informazioni appropriate.

Assicuriamoci che la password sia una x, che l'user ID sia unico, che siano nel gruppo 100 (il gruppo "users" sotto Slackware), e che utilizzino una shell valida.

Poi, abbiamo bisogno di un entry nel file /etc/shadow, dove sono mantenute le password. Una entry tipica potrebbe essere:


chris:$1$w9bsw/N9$UWLr2bRER6YyBS.CAEp7R.:11055:0:99999:7:::


Ancora una volta, ogni linea è un entry per una persona e i campi sono separati dai due punti. I campi sono login name, password crttata, giorni passati dall'ultimo cambio password rispetto a Epoch (1 Gennaio 1970), giorni prima che la password possa essere cambiata, tra quanti giorni scadrà la password, giorni prima che l'utente venga sospeso, giorni dopo la sospensione per la disabilitazione dell'utente ed un campo riservato.

Come puoi vedere, molte informazioni riguardano la sospensione dell'account. Se non stai usando nessuna di queste policy, hai bisogno di riempire solo pochi campi. Altrimenti devi fare qualche calcolo e decidere prima cosa mettere nei campi. Per il nostro nuovo utente, metteremo alcune scritte casuali nel campo password. Non preoccuparti di trovare la password giusta perchè la potrai cambiare in un minuto. L'unico carattere non includibile nella password sono i due punti. Lascia pure il campo "giorni passati dal cambio password" bianco. Riempi 0, 99999 e 7 come nell'esempio e lascia il resto vuoto.

Un nuovo utente viene messo nel gruppo "users" automaticamente. Se vuoi creare un nuovo gruppo o devi aggiungere un utente ad un gruppo esistente, devi modificare il file /etc/group. Ecco una riga tipica:

cvs::102:chris,logan,david,root


I campi sono nome del gruppo, password del gruppo, id del gruppo e membri del gruppo. Creare un nuovo gruppo è molto semplice e basta creatre una nuova linea con un group id unico e inserire tutti gli utenti che vuoi nel gruppo. Ogni utente che è nel gruppo ed è già loggato deve riloggarsi perchè i cambiamenti abbiano effetto.

Ora, utilizziamo il comando passwd per creare una nuova passowrd per l'utente. Poi usiamo mkdir per creare la nuova home dell'utente che dovrà essere esattamente dove abbiamo specificato nel file /etc/passwd.

Se hai installato sendmail(8) nel tuo sistema e usi attivamente la posta, dovrai creare un nuovo file in /var/spool/mail con i permessi e le proprietà adeguate per il questo nuovo utente. Ecco un esempio:

# touch /var/spool/mail/jellyd
# chown jellyd.users /var/spool/mail/jellyd
# chmod 660 /var/spool/mail/jellyd


Questi comandi creeranno un file mail per il nuovo utente "jellyd" e imposteranno i corretti permessi e le proprietà.

Rimuovere un utente è una cosa molto semplice. Basta rimuovere i dati dell'utente da /etc/passwd e /etc/group.
Rimuovere un gruppo è ancora più semplice: basta togliere la riga interessata da /etc/group.

top
Torna all'indice

Cambiare password

Il programma passwd cambia la password modificando il file /etc/shadow. Questo file contiene tutte le password del sistema in un formato crittato. Per cambiare la tua password devi fare ad esempio così:

$ passwd
Changing password for chris
Old password:
Enter the new password (minumum of 5, maximum of 127 characters)
Please use a combination of upper and lower case letters and numbers.
New password:


Come puoi vedere, ti viene chiesto di inserire la tua vecchia password. Non apparirà sullo schermo quando la scriverai, come quando fai il login.  Poi ti viene chiesto di inserire la nuova password. Passwd esegue molti controlli sulla tua nuova passowrd e ti avvertirà quando la nuova password non supera i suoi test. Dovrai scrivere la nuova password due volte per conferma.

Se sei root puoi cambiare la password di un altro utente:

# passwd ted


Dovrai fare la stessa procedura di prima ma non ti verrà chiesta la password vecchia.

Se hai qualche utente che crea problemi al tuo sistema, puoi temporaneamente disabilitare il suo account. Successivamente puoi riabilitarlo. Entrambe le operazioni vengono fatte con il comando passwd. Per disabilitare un utente:


# passwd -l david


Questo modificherà la password crittata in modo che nessun valore le corrisponda. Per far tornare tutto normale:


# passwd -u david


Disabilitare un account potrebbe essere utile se questi non rispetta la regole del tuo sistema or se ha esportato una copia veramente grande di xeyes(1) sul tuo desktop X.

top
Torna all'indice

Cambiare le informazioni degli utenti

Ci sono due tipi di informazione che un utente può cambiare riguardo il loro accounto in ogni momento: la loro shell e le loro informazioni di fingering. Slackware utilizza chsh (change shell) e chfn (change finger) per modificare questi valori.
Un utente può prendere qualsiasi shell elencata nel file /etc/shells. Per molte persone bash sarà la scelta ideale. Altri potrebbero trovare più familiare una shell che utilizzano nei sistemi unix al lavoro o a scuola o che già conoscono. La shell viene cambiata usando chsh:


$ chsh
Password:
Changing the login shell for chris
Enter the new value, or press return for the default
Login Shell [/bin/bash]:


Dopo aver inserito la tua passoword, inserisci il path intero per la nuova shell. Rassicurati che sia elencata nel file /etc/shells(5). root può inoltre cambiare la shell di un utente eseguendo chsh con un username come argomento.

Le informazioni di fingering sono informazioni opzionali come nome, telefono, numero di stanza. Questa possono essere cambiate usando chfn, e seguendo le stesse procedure fatte durante la creazione di un account. Come al solito, root può cambiare il finger di chiunque.

top
Torna all'indice

Spegnere correttamente

E' molto importante spegnere correttamente il sistema. Togliendo semplicemente l'alimentazione potresti causare seri danni al filesystem. Mentre il sistema è acceso, i file sono in uso anche se non stai facendo niente. Ricorda che ci sono processi in esecuzione in background in qualsiasi momento. Questi processi stanno controllando il sistema e mantengono aperti molti file. Quando il sistema viene spento, questi file non chiusi correttamente si possono danneggiare. Se si danneggiano file di primaria importanza, il sistema ne resterà danneggiato. In ogni caso dovrai eseguire un lungo check sul filesystem al reboot.

Perciò, quando riavvi o spegni il tuo computer, è importante farlo nella maniera corretta. Ci sono molti modi di fare questo; puoi prendere quello che ti sembra più divertente :-). Molti metodi per spegnere il computer possono essere applicati al reboot.

Il primo metodo è tramite il programma shutdown(8) che è probabilmente il più popolare. Shutdown può essere usato per spegnere o riavviare e allo stesso tempo può mostrare un messaggio a tutti gli utenti dicendo che il sistema si sta spegnendo.

La sintassi base è:

# shutdown -h now


In questo caso non mandiamo nessun messaggio speciale agli utenti; vedranno il messaggio di default di shutdown. "now" è l'ora alla quale vogliamo spegnere e "-h" significa "spegni il sistema". Questo non è molto amichevole quando utilizzi un sistema multiutente ma è l'ideale per il tuo computer casalingo.
Un modo migliore per farlo in un sistema multiutente è questo:

# shutdown -h +60


Il sistema verrà spento in 60 minuti, il che è buono per un sistema multiutente normale. Se il sistema fosse molto grande l'ideale sarebbe di pianificare gli spegnimenti ed avvertire gli utenti aggiungendo una nota al file /etc/motd(5).

Riavviare il sistema utilizza la stessa sintassi dello spegnimento ad eccetto per il flag -h:

# shutdown -r now


Puoi usare la stessa sintassi con shutdown -r sia con shutdown -h. Ci sono molte funzioni espletabili con il comando shutdown ed è bene controllare la man page per ulteriori dettagli.

Il secondo modo di spegnere il computer è quello di usare il comando halt(8) e il comando reboot(8). Come indica il nome, halt spegnerà immediatamente il computer e reboot riavvierà il sistema. reboot è un link simbolico a halt. Sono invocati così:


# halt
# reboot


Un metodo a basso livello per spegnere o riavviare il sistema è quello di parlare direttamente ad init. Tutti i metodi visti sono modi convenienti di parlare ad init, ma è possibile farlo usando il comando telinit(8). Usando telinit si dirà a init a quale runlevel scendere, e questo farà avviare uno script speciale. Questo script ucciderà i processi necessari al passaggio di livello. Essendo il reboot e l'halt due livelli speciali è possibile spegnere il computer con questo metodo.

# telinit 0


0 è il runlevel corrispondente ad halt. Tutti i processi saranno terminati, i filesystem smontati, e la macchina sarà spenta.

# telinit 6


Il runlevel 6 è il reboot. Tutti i processi saranno terminati, i filesystem smontati, e la macchina sarà riavviata.
C'è un solo altro metodo per riavviare il sistema. Tutti gli altri metodi necessitano dei privilegi di root. Comunque è possibile riavviare la macchina anche se non sei root avendo accesso fisico alla tastiera. Fare un three-fingered salute (control-alt-canc) riavvierà la macchina. Quello che succede veramente è l'esecuzione del programma /usr/bin/ctrlaltdel(8). Se il programma viene rimosso o vengono rimossi i permessi, premere i tre tasti non causerà nessun effetto.

top
Torna all'indice

Sommario

Questo capitolo ha discusso le procedure per aggiungere e rimuovere utenti e gruppi. Dovresti essere capace di eseguire questi task usando gli script forniti e a mano. Addizionalmente, dovresti conoscere le procedure di aggiunta degli utenti, le tecniche di selezione delle pasword e come cambiare le informazioni utente.
Infine, dovresti conoscere come spegnere il tuo computer correttamente e perchè è importante farlo. Queste sono tutte parti importanti dell'amministrazione di sistema, sia per il tuo computer casalingo, sia per un grande server aziendale.

top
Torna all'indice

PREV
Capitolo 11 - Controllo dei Processi
NEXT
Capitolo 13 - Comandi Base per la Rete