[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [translators] [docinfo] [indice analitico] [volume]


Capitolo 613.   nanoLinux: le utenze

In generale, la gestione delle utenze da parte di nanoLinux è quella tradizionale dei sistemi Unix, dove in particolare, attraverso lo script nanorc è prevista una gestione parallela di utenze Samba, PostgreSQL e MySQL.

nanoLinux è organizzato per facilitare la condivisione delle utenze tramite l'uso di un servente NFS e NIS, già a partire dal livello «II».

613.1   Creazione, modifica e cancellazione delle utenze

È consigliabile gestire la creazione e l'eliminazione delle utenze attraverso lo script nanorc, per cercare di mantenere in sincronia la gestione Unix con quella di Samba, di PostgreSQL e di MySQL, anche se non si prospetta l'ipotesi di offrire accesso a elaboratori MS-Windows. Per comodità, le directory personali degli utenti sono raggruppate per categoria, a partire dalla directory /home/. Per esempio, la directory /home/luce/chiara/ potrebbe essere la directory personale dell'utente chiara, che in qualche modo viene considerato parte della categoria luce.

Si osservi che nanoLinux è organizzato in modo da gestire i gruppi privati, pertanto la classificazione descritta degli utenti serve solo a raggruppare le directory personali per facilitare il lavoro di amministrazione.

Per inserire una nuova utenza, si comincia con il comando seguente:

nanorc user add[Invio]

.-------Add a new user---------.
| Please insert the new user   |
| name (max 16 characters):    |
| 01234567890123456            |
| .--------------------------. |
| |                          | |
| `--------------------------' |
|------------------------------|
|     <  OK  >   <Cancel>      |
`------------------------------'

Il nominativo utente da inserire può essere lungo al massimo 16 caratteri, possibilmente composti da lettere minuscole dell'alfabeto inglese e da cifre numeriche, senza spazi. Supponendo di voler creare l'utente rossimario, si procede così:

rossimario<OK>

.---------------------Classify user------------------------.
| Please insert a hierarchy name for the user: it will be  |
| used as an intermediate directory after "/home/".        |
| The initial default value is the date of today.          |
| Please insert only letters and digits (a-z, A-Z, 0-9):   |
| .------------------------------------------------------. |
| |20060201                                              | |
| `------------------------------------------------------' |
|----------------------------------------------------------|
|               <  OK  >        <Cancel>                   |
`----------------------------------------------------------'

Viene richiesto di specificare la classificazione da dare all'utenza, proponendo inizialmente una stringa che corrisponde alla data attuale (si possono inserire al massimo otto caratteri, per garantire il funzionamento di Dosemu). Si suppone di voler sostituire questo valore predefinito con la sigla 5a0607, che rappresenta idealmente una classe in un anno scolastico particolare:

[Canc][Canc][Canc][Canc][Canc][Canc][Canc][Canc]

5a0607<OK>

Adding user `rossimario'...
Adding new group `rossimario' (1000).
Adding new user `rossimario' (1000) with group `rossimario'.
Creating home directory `/home/5a0607/rossimario'.
Copying files from `/etc/skel'
Changing the user information for rossimario
Enter the new value, or press ENTER for the default

Vengono richiesti alcuni dati addizionali, che è bene compilare per poter individuare correttamente l'utente:

Full Name []: studente Rossi Mario 5A 2006/2007[Invio]

Room Number []: [Invio]

Work Phone []: [Invio]

Home Phone []: [Invio]

Other []: [Invio]

Is the information correct? [y/n] y[Invio]

Al termine viene richiesto di inserire per due volte la parola d'ordine, cosa che deve fare direttamente la persona interessata:

digitazione_all'oscuro<OK>

.-------New password---------.
| Please insert the new      |
| password for user          |
| rossimario:                |
| .------------------------. |
| |************            | |
| `------------------------' |
|----------------------------|
|   <  OK  >  <Cancel>       |
`----------------------------'

L'inserimento corrisponde alla visualizzazione di una serie di asterischi.

digitazione_all'oscuro<OK>

.-------New password---------.
| Please insert again the    |
| new password for user      |
| rossimario:                |
| .------------------------. |
| |************            | |
| `------------------------' |
|----------------------------|
|   <  OK  >  <Cancel>       |
`----------------------------'

Dopo l'inserimento, per due volte, della parola d'ordine, se tutto è stato fatto senza errori, soprattutto se la parola d'ordine è stata inserita correttamente, si può procedere con l'inserimento di un utente successivo, oppure si può concludere l'operazione:

<Cancel>

Si osservi che se si tenta di inserire un nominativo-utente più lungo del consentito, questo viene tagliato al sedicesimo carattere, senza mostrare errori.

L'organizzazione di nanoLinux richiede che anche il cambiamento della parola d'ordine avvenga attraverso un comando di nanorc, avviato dall'amministratore. Ciò dipende dal fatto che nanoLinux è pensato principalmente per l'utilizzo in rete, con la condivisione delle utenze attraverso il NIS. Questa limitazione consente di mantenere valido l'abbinamento tra utenze Unix/NIS, Samba, PostgreSQL e MySQL, a discapito del fatto che l'amministratore deve sempre essere chiamato in causa per queste operazioni:

nanorc user passwd[Invio]

.-------Change password---------.
| Please insert the user name   |
| who have to change the        |
| password:                     |
| .---------------------------. |
| |                           | |
| `---------------------------' |
|-------------------------------|
|     <  OK  >   <Cancel>       |
`-------------------------------'

rossimario<OK>

.-------New password---------.
| Please insert the new      |
| password for user          |
| rossimario:                |
| .------------------------. |
| |                        | |
| `------------------------' |
|----------------------------|
|   <  OK  >  <Cancel>       |
`----------------------------'

digitazione_all'oscuro<OK>

.-------New password---------.
| Please insert again the    |
| new password for user      |
| rossimario:                |
| .------------------------. |
| |                        | |
| `------------------------' |
|----------------------------|
|   <  OK  >  <Cancel>       |
`----------------------------'

Per eliminare un'utenza si procede in modo simile:

nanorc user del[Invio]

.----Delete an old user------.
| Please insert the user     |
| name to be removed.        |
| .------------------------. |
| |                        | |
| `------------------------' |
|----------------------------|
|   <  OK  >  <Cancel>       |
`----------------------------'

rossimario<OK>

613.2   SMB

nanoLinux, una volta installato, dispone di Samba, che va inteso come un'estensione al servizio NFS per l'accesso alle directory personali degli utenti.

Perché Samba possa funzionare in armonia con il sistema di gestione delle utenze standard, occorre intervenire su queste utenze attraverso lo script nanorc, in modo da garantire di avere gli stessi utenti con le stesse parole d'ordine, sia per l'accesso al sistema operativo, sia per l'accesso a Samba. I comandi utili a questo proposito sono:

Comando Descrizione
nanorc user add
nanorc user del
Aggiunge o elimina un'utenza.
nanorc user passwd
Cambia la parola d'ordine di un utente.

Se per qualche ragione si vuole avere una gestione disgiunta delle utenze, si possono usare i comandi seguenti:

Comando Descrizione
nanorc user unixadd
nanorc user unixdel
nanorc user unixpasswd
Aggiunge un'utenza, la elimina o gli cambia la parola d'ordine, intervenendo solo nella parte "Unix", ovvero nei file /etc/passwd, /etc/group, /etc/shadow e nella directory personale. Si trascura in pratica la gestione eventuale di Samba.
nanorc user smbadd
nanorc user smbdel
nanorc user smbpasswd
Aggiunge un'utenza, la elimina o gli cambia la parola d'ordine, intervenendo solo nella parte relativa a Samba.

Si può intendere che il servizio offerto da Samba è utile se si colloca nell'elaboratore che svolge già il compito di servente NIS e NFS.

Teoricamente, la configurazione prevista per Samba prevede anche la condivisione della stampante lp tramite il protocollo SMB.

Samba è inserito in nanoLinux a completamento del sistema della gestione delle utenze ed eventualmente anche del sistema di condivisione della stampa; tuttavia, non ci può essere la sicurezza che le cose funzionino come ci si potrebbe aspettare, perché il successo dipende anche dalla «disponibilità» a cooperare da parte degli altri sistemi operativi che dovrebbero sfruttare questi servizi.

Per l'uso di Samba, si può consultare la parte xlviii, scritta da Fulvio Ferroni.

613.3   NIS e NFS per utilizzare altre utenze

nanoLinux è predisposto inizialmente con pochi utenti: l'amministratore e alcuni utenti comuni. Tuttavia, è disponibile un sistema NIS per la connessione a un servente NIS, dal quale ottenere le informazioni su altre utenze (precisamente per i file /etc/passwd, /etc/shadow e /etc/group). In pratica, dal momento che l'utilizzo da CD o da DVD comporta delle limitazioni, è prevista la possibilità di acquisire queste utenze dall'esterno, innestando le directory personali di queste utenze a partire dalla directory /home/, attraverso il protocollo NFS.

Per l'utilizzo di questa funzionalità, è necessario:

Se sono rispettati questi requisiti, si può attivare la gestione di queste utenze remote attraverso il comando nanorc nis-home start:

nanorc nis-home start[Invio]

.--------NIS domain--------.
|                          |
| Please insert the NIS    |
| domain:                  |
| .----------------------. |
| |                      | |
| `----------------------' |
|--------------------------|
|   <  OK  >    <Cancel>   |
`--------------------------'

Come si vede dalla figura, viene richiesto l'inserimento del dominio NIS; questa informazione dipende da come è configurato il servente NIS a cui ci si vuole rivolgere e si può ottenere presso un elaboratore già configurato con il comando nisdomainname, senza argomenti. Dopo l'inserimento e la conferma si passa all'indicazione dell'indirizzo IP del servente:

nano-domain<OK>

.--------NIS server--------.
| Please insert the NIS    |
| server IPv4 address:     |
| .----------------------. |
| |                      | |
| `----------------------' |
|--------------------------|
|  <  OK  >      <Cancel>  |
`--------------------------'

In generale è meglio inserire l'indirizzo anche se appartenente alla rete locale; si passa così all'inserimento dell'indirizzo del servente DNS e inizialmente viene proposto lo stesso usato per il NIS:

192.168.1.254<OK>

.--------NFS server--------.
| Please insert the NFS    |
| server IPv4 address:     |
| .----------------------. |
| |192.168.1.254         | |
| `----------------------' |
|--------------------------|
|  <  OK  >      <Cancel>  |
`--------------------------'

192.168.1.254<OK>

Se tutto funziona come si deve, viene innestata la directory /home/ remota e viene avviato il servizio NIS per l'acquisizione delle utenze. A quel punto, le directory personali degli utenti comuni locali non sono più accessibili, perché nascoste sotto quanto acquisito dal servente NFS.

Volendo fare le stesse cose a mano, senza l'aiuto dello script, si potrebbe ottenere lo stesso risultato dell'esempio attraverso i passaggi seguenti:

  1. si modifica o si crea il file /etc/defaultdomain, inserendo una riga contenente esattamente il nome del dominio NIS;

    nano-domain
    
  2. si modifica o si crea il file /etc/yp.conf, inserendo una riga contenente la direttiva ypserver, con l'indirizzo del servente NIS;

    ypserver 192.168.1.254
    
  3. si innesta la directory /home/ remota;

    mount -t nfs 192.168.1.254:/home /home[Invio]

  4. si riavvia il servizio NIS.

    /etc/init.d/nis stop[Invio]

    /etc/init.d/nis start[Invio]

Se, pur essendo tutto in ordine, il NIS non è in grado di collegarsi, è probabile che sia necessario disattivare presso il servente NIS la gestione delle parole d'ordine oscurate (shadow password).

Per approfondire l'argomento si possono consultare i capitoli 203 e 204.

Si osservi che l'utente tizio e gli altri utenti comuni standard, previsti per nanoLinux, sono associati a numeri UID e GID inferiori a 1 000, ovvero al di sotto del livello iniziale previsto per le utenze comuni. Il NIS predisposto con nanoLinux prevede la condivisione delle utenze che abbiano numeri UID da 1 000 in su, pertanto, anche volendo, le utenze standard di nanoLinux non sono condivisibili se non si cambiano i numeri UID e GID nei file /etc/passwd e /etc/group. Tuttavia, il fatto che l'edizione standard di nanoLinux contenga sempre queste utenze speciali, fa sì che possano condividere gli stessi dati se si attiva un servizio NFS.

613.4   Controllo dello spazio utilizzato

nanoLinux non è organizzato per la gestione delle «quote» del disco, ma offre un meccanismo molto semplice per il controllo dello spazio utilizzato dagli utenti, attraverso il file /etc/profile che si limita ad avvisare gli utenti dello stato del loro utilizzo. Per attivare questo controllo occorre specificare la disponibilità massima di spazio agli utenti:

nanorc disk-space edit[Invio]

Quando si avvia il comando per la prima volta, viene creato il file /etc/nanoLinux/HOME_DISK_SPACE_ALLOWED, con il contenuto seguente, assegnando una disponibilità di spazio pari a 10 000 000 byte; contestualmente viene avviato un programma per la modifica dei file di testo, allo scopo di poter cambiare il contenuto di questo file:

#
# USER:MAX_BYTES
#
# the record without user name is the default:
# :MAX_BYTES
#
:10000000

Come si vede dal suggerimento nel commento iniziale, si può specificare il limite per ogni utente, con la forma:

utente:n_byte

Per dare un limite a tutti gli utenti non dichiarati espressamente in questo file occorre la direttiva seguente:

:n_byte

Per fare un controllo complessivo delle utenze che non rispettano il limite di spazio assegnato, si può usare il comando seguente:

nanorc disk-space check[Invio]

Si ottiene un elenco composto dagli utenti che utilizzano il loro spazio correttamente e da quelli che invece eccedono il limite. Tuttavia, l'elenco dei «buoni» si ottiene attraverso lo standard output, mentre quello dei «cattivi» si vede attraverso lo standard error; pertanto, è facile selezionare le informazioni che servono.

Per annullare il controllo dello spazio utilizzato, basta commentare le direttive presenti nel file /etc/nanoLinux/HOME_DISK_SPACE_ALLOWED, oppure lo si può semplicemente cancellare.

613.5   Controllo del numero di pagine stampabili

Nella directory /etc/script/ sono presenti due script denominati lpr e lp, il cui scopo è quello di eseguire un controllo preliminare su ciò che viene inviato alla stampa, per poi passare il compito ai programmi corrispondenti, che però si trovano nella directory /usr/bin/. La directory /etc/script/ si trova per prima nell'elenco dei percorsi di avvio (la variabile di ambiente PATH), così che gli script contenuti al suo interno vengono eseguiti prima di cercare programmi con lo stesso nome in altre collocazioni.

Gli script denominati lpr e lp controllano se è stato dichiarato qualcosa a proposito della volontà di limitare le stampe a un certo numero di pagine; se questo controllo non è stato richiesto, avviano i loro programmi omonimi; altrimenti, elaborano il file pervenuto per la stampa con lo script print-filter.

Lo script print-filter che si trova sempre nella directory /etc/script/, cerca di riconoscere il file e se può, cerca di contarne le pagine. Se non può riconoscere il file, o comunque se non può elaborarlo, lo restituisce tale e quale (in tal caso il file in questione continua il suo percorso normale verso la stampa); se invece può gestirlo, lo rielabora in modo da contarne le pagine: se si determina che le pagine da stampare non superano il limite stabilito con la configurazione, il file viene inviato alla stampa; altrimenti viene annotato un messaggio di errore nel registro del sistema.

È evidente che questo meccanismo di controllo si può raggirare facilmente, utilizzando i programmi lpr lp con il loro percorso: /usr/bin/lpr, /usr/bin/lp. Ma lo scopo di questo sistema è solo quello di evitare degli errori, ovvero l'invio di una stampa non desiderata con una quantità enorme di pagine.

La configurazione con la quale si fissa la quantità massima di pagine per stampa, spetta solo all'amministratore:

nanorc print maxpages[Invio]

.----------------Set max lpr/lp printable pages------------------.
| Please insert how many pages are allowed to be printed for any |
| single print; if you enter zero or you leave blank, there is   |
| no limit:                                                      |
| .------------------------------------------------------------. |
| |                                                            | |
| `------------------------------------------------------------' |
|                                                                |
|                                                                |
|----------------------------------------------------------------|
|                   <  OK  >          <Cancel>                   |
`----------------------------------------------------------------'

Come si vede dal suggerimento, lasciando il campo vuoto o inserendo esplicitamente il valore zero, si ottiene di annullare il controllo, in modo da non avere alcun limite di stampa. In questo caso vengono specificate 11 pagine:

11<OK>

.-----------------------------------------.
| It will be allowed to print 11 pages at |
| a time.                                 |
|                                         |
|                                         |
|-----------------------------------------|
|               <  OK  >                  |
`-----------------------------------------'

Se il controllo delle pagine da stampare viene eseguito, nel caso di file di testo, questi vengono impaginati in modo particolare, aggiungendo anche un'intestazione con i dati di chi li ha stampati. Eventualmente, per cambiare questa impaginazione occorre modificare lo script print-filter nella directory /etc/script/.

613.6   Utenze speciali per l'amministrazione

Per facilitare la gestione di un laboratorio, o di una rete locale che si affida a nanoLinux, è prevista un'utenza speciale, denominata admin, a cui è associato lo script /etc/script/ADMIN. Attribuendo una parola d'ordine a questa utenza (con il programma passwd, senza bisogno di aggiornare anche la porzione che riguarda Samba), che in pratica ha gli stessi privilegi dell'utente root, si consente a una persona diversa si svolgere alcune funzioni. In condizioni normali, si presenta un menù con poche funzioni, come quello seguente:

login: admin[Invio]

Password: digitazione_all'oscuro[Invio]

.------------------------Admin menu---------------------------.
| Local admin limited menu                                    |
| .---------------------------------------------------------. |
| |   nis restart     Restart the NIS service               | |
| |   lpd restart     Restart the print service             | |
| |   gpm restart     Restart the mouse service             | |
| |   udev restart    Restart the "/dev/" service           | |
| |   print maxpages  Max allowed printed pages at a time   | |
| |   exit            Quit                                  | |
| `---------------------------------------------------------' |
|-------------------------------------------------------------|
|                 <  OK  >         <Cancel>                   |
`-------------------------------------------------------------'

Come si può intuire, si tratta di voci che servono a riavviare alcune funzionalità gestite da programmi demone, che per qualche ragione potrebbero smettere di funzionare senza un motivo particolare. In questo modo, di fronte a un mouse che non funziona più e a problemi simili, invece si riavviare si può agire senza dover chiedere aiuto all'amministratore vero e proprio.

Se l'elaboratore sembra avere un ruolo più importante, lo /etc/script/ADMIN mostra più funzioni:

.------------------------Admin menu--------------------------.
| Admin limited menu                                         |
| .--------------------------------------------------------. |
| |   adduser         Add a new user                       | |
| |   passwd          Change a user's password             | |
| |   clock           Change the date and time manually    | |
| |   nis-make        Rebuild NIS database                 | |
| |   nis restart     Restart the NIS service              | |
| |   lpd restart     Restart the print service            | |
| |   printer access  Printer access permissions           | |
| |   proxy access    HTTP proxy access permissions        | |
| |   proxy-off       Turn off HTTP proxy                  | |
| |   proxy-on        Turn on HTTP proxy                   | |
| |   storage access  External storage access permission   | |
| |   gpm restart     Restart the mouse service            | |
| |   udev restart    Restart the "/dev/" service          | |
| |   lprm            Delete the printer queue             | |
| |   reboot          Reboot the computers                 | |
| |   shutdown        Shutdown the computers               | |
| |   exit            Quit                                 | |
| `--------------------------------------------------------' |
|------------------------------------------------------------|
|                 <  OK  >         <Cancel>                  |
`------------------------------------------------------------'

Naturalmente, l'utente root che lo preferisca può usare direttamente lo script ADMIN, senza bisogno di fingere un'accesso come utente admin.

Tabella 613.22. Descrizione delle funzioni disponibili all'utente admin.

Funzione Descrizione
adduser
Consente di aggiungere un'utenza al sistema.
passwd
Consente di cambiare la parola d'ordine di un'utenza.
clock
Consente di cambiare la data e l'ora.
nis-make
Ricostruisce la base di dati NIS a partire dalle informazioni aggiornate delle utenze.
nis restart
Riavvia i servizi NIS (servente o cliente, a seconda della configurazione).
lpd restart
Riavvia il servente di stampa.
printer access
Controlla l'accesso al servente di stampa.
gpm restart
Riavvia il demone per la gestione del mouse.
udev restart
Riavvia la gestione automatica dei file di dispositivo.
print maxpages
Limita le stampe a un numero massimo di pagine per volta.
lprm
Elimina la coda di stampa.
proxy access
Controlla l'accesso al proxy HTTP.
proxy-off
Disattiva il proxy HTTP.
proxy-on
Riattiva il proxy HTTP.
reboot
Esegue il riavvio degli elaboratori (tutti escluso quello da cui si dà il comando).
shutdown
Avvia lo spegnimento degli elaboratori (tutti escluso quello da cui si dà il comando).
exit
Esce dal menù.

Sono previste anche le utenze shutdown e reboot, da usare presso un elaboratore che ha un ruolo privilegiato nei confronti di una rete locale. Il loro scopo è di richiedere lo spegnimento o il riavvio degli elaboratori della rete locale, tenendo conto che l'elenco di tali elaboratori viene preso dalla lista di quelli previsti per la sincronizzazione del contenuto del file system (si veda il capitolo 616).

Appunti di informatica libera 2006.07.01 --- Copyright © 2000-2006 Daniele Giacomini -- <daniele (ad) swlibero·org>


Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome nanolinux_le_utenze.htm

[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [translators] [docinfo] [indice analitico]

Valid ISO-HTML!

CSS validator!