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


Capitolo 667.   nanoLinux: utenze e amministrazione

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.

nanoLinux è organizzato per facilitare la condivisione delle utenze tramite l'uso di un servente NFS e NIS.

Tabella 658.14. Script nanorc: gestione delle utenze.

Comando Descrizione
nanorc user add
nanorc user del [utente]
Aggiunge o elimina un'utenza, secondo la procedura completa prevista da nanoLinux.
nanorc user passwd
Cambia la parola d'ordine di un utente, secondo la procedura completa prevista da nanoLinux.
nanorc disk-space edit
nanorc disk-space check
Indica un limite di spazio su disco per le utenze, oppure verifica che il limite di spazio attribuito agli utenti sia rispettato.
nanorc nis-server-users edit
Per motivi di sicurezza, indica quali utenti comuni possono accedere direttamente all'elaboratore che offre il servizio NIS.
nanorc print maxpages
Consente di definire una quantità massima di pagine che possono essere stampate simultaneamente.

Tabella 658.9. Script nanorc: configurazione del servizio NIS.

Comando Descrizione
nanorc nis-server config
nanorc nis-server unconf
Attiva o disattiva il funzionamento in qualità di servente NIS.
nanorc nis-server-users edit
Per motivi di sicurezza, indica quali utenti comuni possono accedere direttamente all'elaboratore che offre il servizio NIS.
nanorc nis stop
Disattiva le funzioni NIS (sia come servente, sia come cliente).

667.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, 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 (only   |
| lower case letters and numbers, max 16  |
| characters):                            |
| |1234567890123456|                      |
| .-------------------------------------. |
| |                                     | |
| `-------------------------------------' |
|-----------------------------------------|
|         <  OK  >     <Cancel>           |
`-----------------------------------------'

Il nominativo utente da inserire può essere lungo al massimo 16 caratteri,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;   |
| max 8 characters):                                      |
| |12345678|                                              |
| .-----------------------------------------------------. |
| |20070201                                             | |
| `-----------------------------------------------------' |
|---------------------------------------------------------|
|               <  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 5a0708, che rappresenta idealmente una classe in un anno scolastico particolare:

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

5a0708<OK>

.-------Full user name----------.
| Please insert the user full   |
| name and maybe some more data |
| to identify it.               |
| .---------------------------. |
| |                           | |
| `---------------------------' |
|-------------------------------|
|     <  OK  >   <Cancel>       |
`-------------------------------'

Viene richiesto di specificare il nome completo; in questo caso si indica anche la classe e l'anno scolastico. Si devono evitare la virgola e i due punti, che comunque verrebbero omessi automaticamente:

studente Rossi Mario 5A 2007/2008[Invio]

Adding user `rossimario'...
Adding new group `rossimario' (1000).
Adding new user `rossimario' (1000) with group `rossimario'.
Creating home directory `/home/5a0708/rossimario'.
Copying files from `/etc/skel'

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>

667.2   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 290 e 291.

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.

667.3   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.

667.4   Controllo del numero di pagine stampabili e dell'origine delle stampe

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, lo script print-filter aggiunge una specie di «timbro», con le informazioni dell'origine della stampa. In condizioni normali, si tratta di una scritta verticale, che appare vicino al bordo inferiore sinistro del foglio, come si vede nell'immagine successiva:

origine delle stampe

In particolare, se si tratta di file di testo, lo script print-filter li impagina in modo particolare, mettendo l'informazione sull'origine della stampa in alto. Eventualmente, si può intervenire nello script (collocato nella directory /etc/script/) per cambiare l'impaginazione.

667.5   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), 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 script /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 filter    HTTP proxy content filter bypass     | |
| |   proxy-off       Turn off HTTP proxy                  | |
| |   proxy-on        Turn on HTTP proxy                   | |
| |   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 667.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 filter
Definisce a chi deve essere applicato il filtro dei contenuti tramite Dansguardian.
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 669).

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


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

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

Valid ISO-HTML!

CSS validator!