Utenze e amministrazione con NLNX

print-filter u0.5

In generale, la gestione delle utenze da parte di NLNX è quella tradizionale dei sistemi Unix, con delle semplificazioni che facilitano la condivisione delle utenze tramite l'uso di un servente NFS, NIS e Samba.

Tabella u44.7. Script nlnxrc: gestione delle utenze.

Comando Descrizione
nlnxrc user add [utente \
  \    [home_dir \
  \    [descrizione \
  \    [parola_d'ordine]]]]
nlnxrc user del [utente]
Aggiunge o elimina un'utenza, secondo la procedura completa prevista da NLNX.
nlnxrc user passwd [utente \
  \    [parola_d'ordine]]
Cambia la parola d'ordine di un utente, secondo la procedura completa prevista da NLNX.
nlnxrc user info
nlnxrc home info
Consente di avere informazioni sugli utenti comuni, partendo, rispettivamente, da un elenco in ordine alfabetico del nominativo utente, oppure della directory personale.
nlnxrc quota set
Se è attiva la gestione delle quote di utilizzo della memoria di massa, consente di stabilire il limite di spazio per le utenze.
nlnxrc quota report
Se è attiva la gestione delle quote di utilizzo della memoria di massa, visualizza la situazione di tutti gli utenti, ordinando l'elenco partendo da quelli che stanno utilizzando più spazio.
nlnxrc nis-server-users edit
Per motivi di sicurezza, indica quali utenti comuni possono accedere direttamente all'elaboratore che offre il servizio NIS.
nlnxrc machine add
nlnxrc machine del [nome]
Aggiunge o elimina un'utenza speciale, associata a un elaboratore MS-Windows, per la gestione degli accessi da tale sistema operativo, attraverso Samba.
nlnxrc admin add [nominativo \
  \    [descrizione \
  \    [parola_d'ordine]]]
nlnxrc admin del [nominativo]
Aggiunge o elimina un'utenza amministrativa. Per la precisione, si ottiene un amministratore con nome nominativo dal lato NLNX e uno con nome win.nominativo dal lato MS-Windows.
nlnxrc admin passwd \
  \    [nominativo [parola_d'ordine]]
Cambia la parola d'ordine di un amministratore, secondo la procedura completa prevista da NLNX.

Tabella u44.3. Script nlnxrc: configurazione del servizio NIS.

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

Creazione, modifica e cancellazione delle utenze, in modo interattivo

È necessario gestire la creazione e l'eliminazione delle utenze attraverso lo script nlnxrc, per garantire che l'organizzazione di NLNX sia preservata. In particolare, 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 NLNX è 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.

Un altro elemento distintivo delle utenze di NLNX consiste nei permessi iniziali che vengono dati alle directory personali degli utenti. Queste appartengono in realtà a root e al gruppo privato dell'utente a cui è affidata la directory, pertanto vengono dati tutti i permessi di accesso, sia al proprietario, sia al gruppo, ma agli altri utenti rimane solo il permesso di accesso, senza la possibilità di leggere il contenuto. Nell'ipotesi dell'utente chiara già descritta, si possono vedere i permessi seguenti:

ls -l /home/LUCE[Invio]

...
drwxrwx--x  2 root    chiara    4096 2012-06-14 09:50 chiara
...

Questo accorgimento serve a garantire che gli utenti non possano cambiare i permessi della propria directory personale, anche se i permessi dei contenuti rimangono sotto il loro controllo.

A partire dalla directory /home/.samba/profiles/ vengono anche create, automaticamente, delle sottodirectory con gli stessi nomi degli utenti e i permessi per consentire loro l'accesso. Tali directory servono a Samba, per consentire la gestione dei profili personali quando si accede attraverso sistemi MS-Windows. In tal caso, con l'utenza chiara, si ottiene la directory /home/.samba/profiles/chiara/.

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

nlnxrc user add[Invio]

┌─────────────────────Add a new user───────────────────────┐
│ [en] Please insert the new user name (only lower case    │
│ letters and numbers, minimum 8 and max 15 characters,    │
│ the first character must be a letter).                   │
│                                                          │
│ [it] Inserire il nominativo utente, composto             │
│ preferibilmente da cognome e nome attaccati, ed          │
│ eventualmente l'anno di nascita, per esempio             │
│ "rossimario1990" (si possono usare solo lettere          │
│ minuscole e cifre numeriche per un minimo di 8 e fino a  │
│ un massimo di 15 caratteri, ma il primo carattere deve   │
│ essere una lettera).                                     │
│ |........9012345|                                        │
│ ┌──────────────────────────────────────────────────────┐ │
│ │                                                      │ │
│ └──────────────────────────────────────────────────────┘ │
├──────────────────────────────────────────────────────────┤
│                <  OK  >            <Cancel>              │
└──────────────────────────────────────────────────────────┘

Il nominativo utente da inserire può essere lungo al massimo 15 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───────────────────────┐
│ [en] Please select a hierarchy name for the user: it   │
│ will be used as an intermediate directory after        │
│ "/home/".                                              │
│                                                        │
│ [it] Inserire la classificazione dell'utente: viene    │
│ usata come directory intermedia dopo "/home/".         │
│ ┌────────────────────────────────────────────────────┐ │
│ │              1AI1213   /home/1AI1213               │ │
│ │              1AM1213   /home/1AM1213               │ │
│ │              1AS1213   /home/1AS1213               │ │
│ │              1BI1213   /home/1BI1213               │ │
│ │              1BM1213   /home/1BM1213               │ │
│ │              1BS1213   /home/1BS1213               │ │
│ │              1CI1213   /home/1CI1213               │ │
│ │              1CM1213   /home/1CM1213               │ │
│ │              1DI1213   /home/1DI1213               │ │
│ │              --------  --------------------------  │ │
│ │              new       add a new one               │ │
│ └──────────────↓(+)──────────────────────────────────┘ │
│                                                        │
│                                                        │
├────────────────────────────────────────────────────────┤
│               <  OK  >        <Cancel>                 │
└────────────────────────────────────────────────────────┘

Viene richiesto di specificare la classificazione da dare all'utenza, proponendo un elenco con le directory che sembrano essere già state usate con questo scopo. I nomi usati per la classificazione possono contenere al massimo otto caratteri, a scelta tra lettere maiuscole e cifre numeriche.. Si suppone di voler attribuire all'utente la classificazione 5A1213 che non risulta ancora prevista, pertanto si seleziona la voce new.

┌─────────────────────Classify user────────────────────────┐
│ [en] Please insert a hierarchy name for the user: it     │
│ will be used as an intermediate directory after          │
│ "/home/". Please insert only upper case letters and      │
│ digits (A-Z, 0-9; min 4, max 8 characters).              │
│                                                          │
│ [it] Inserire la classificazione dell'utente: viene      │
│ usata come directory intermedia dopo "/home/".           │
│ Inserire solo lettere maiuscole e cifre numeriche (A-Z,  │
│ 0-9; min 4, max 8 caratteri).                            │
│ |....5678|                                               │
│ ┌──────────────────────────────────────────────────────┐ │
│ │2012                                                  │ │
│ └──────────────────────────────────────────────────────┘ │
│                                                          │
├──────────────────────────────────────────────────────────┤
│                 <  OK  >            <Cancel>             │
└──────────────────────────────────────────────────────────┘

Viene proposto l'anno attuale, ma viene cambiato secondo quanto già previsto:

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

5A1213<OK>

┌────────────────────Full user name───────────────────────┐
│ [en] Please insert the user full name and maybe some    │
│ more data to identify it.                               │
│                                                         │
│ [it] Inserire la descrizione dettagliata dell'utente,   │
│ per poterlo identificare con precisione.                │
│ ┌─────────────────────────────────────────────────────┐ │
│ │                                                     │ │
│ └─────────────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────────────┤
│               <  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 2012/2013[Invio]

Adding user `rossimario'...
Adding new group `rossimario' (1000).
Adding new user `rossimario' (1000) with group `rossimario'.
Creating home directory `/home/5A1213/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──────────────────────┐
│ [en] Please insert the new password for user             │
│ "rossimario" with home directory                         │
│ "/home/5A1213/rossimario". Please insert at least 7      │
│ characters.                                              │
│                                                          │
│ [it] Inserire la nuova parola d'ordine per l'utente      │
│ "rossimario" che dispone della directory personale       │
│ "/home/5A1213/rossimario".                               │
│ Si prega di inserire almeno 7 caratteri.                 │
│  <-MIN->                                                 │
│ ┌──────────────────────────────────────────────────────┐ │
│ │************                                          │ │
│ └──────────────────────────────────────────────────────┘ │
├──────────────────────────────────────────────────────────┤
│                <  OK  >          <Cancel>                │
└──────────────────────────────────────────────────────────┘

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

digitazione_all'oscuro<OK>

┌───────────────────────New password─────────────────────────┐
│ [en] Please insert again the new password for user         │
│ "rossimario" with home directory "/home/5A1213/rossimario".│
│                                                            │
│ [it] Inserire nuovamente la parola d'ordine per l'utente   │
│ "rossimario" che dispone della directory personale         │
│ "/home/5A1213/rossimario".                                 │
│  <-MIN->                                                   │
│ ┌────────────────────────────────────────────────────────┐ │
│ │************                                            │ │
│ └────────────────────────────────────────────────────────┘ │
├────────────────────────────────────────────────────────────┤
│                 <  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 conclude l'operazione ed eventualmente si può procedere con l'inserimento di un utente successivo. In questo caso si vuole smettere:

<Cancel>

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

L'organizzazione di NLNX richiede che anche il cambiamento della parola d'ordine avvenga attraverso un comando di nlnxrc, avviato di norma dall'amministratore. Ciò dipende dal fatto che NLNX è pensato principalmente per l'utilizzo in rete, con la condivisione delle utenze attraverso il NIS e Samba. Questa limitazione consente di mantenere valido l'abbinamento tra utenze Unix, NIS e Samba, ma richiede di intervenire presso il servente; l'esempio seguente mostra l'amministratore che cambia la parola d'ordine di un utente comune:

nlnxrc user passwd[Invio]

┌───────────────Change password──────────────────┐
│ [en] Please insert the user name who have to   │
│ change the password.                           │
│                                                │
│ [it] Inserire il nominativo utente per il      │
│ quale si deve cambiare la parola d'ordine.     │
│ ┌────────────────────────────────────────────┐ │
│ │                                            │ │
│ └────────────────────────────────────────────┘ │
├────────────────────────────────────────────────┤
│           <  OK  >      <Cancel>               │
└────────────────────────────────────────────────┘

rossimario<OK>

┌───────────────────────────New password─────────────────────────────┐
│ [en] Please insert the new password for user "rossimario" with     │
│ home directory "/home/5A1213/rossimario". Please insert at least 7 │
│ characters.                                                        │
│                                                                    │
│ [it] Inserire la nuova parola d'ordine per l'utente "rossimario"   │
│ che dispone della directory personale "/home/5A1213/rossimario".   │
│ Si prega di inserire almeno 7 caratteri.                           │
│  <-MIN->                                                           │
│ ┌────────────────────────────────────────────────────────────────┐ │
│ │************                                                    │ │
│ └────────────────────────────────────────────────────────────────┘ │
├────────────────────────────────────────────────────────────────────┤
│                   <  OK  >          <Cancel>                       │
└────────────────────────────────────────────────────────────────────┘

digitazione_all'oscuro<OK>

┌───────────────────────New password─────────────────────────┐
│ [en] Please insert again the new password for user         │
│ "rossimario" with home directory "/home/5A1213/rossimario".│
│                                                            │
│ [it] Inserire nuovamente la parola d'ordine per l'utente   │
│ "rossimario" che dispone della directory personale         │
│ "/home/5A1213/rossimario".                                 │
│  <-MIN->                                                   │
│ ┌────────────────────────────────────────────────────────┐ │
│ │************                                            │ │
│ └────────────────────────────────────────────────────────┘ │
├────────────────────────────────────────────────────────────┤
│                 <  OK  >         <Cancel>                  │
└────────────────────────────────────────────────────────────┘

Per eliminare un'utenza si procede in modo simile all'inserimento:

nlnxrc user del[Invio]

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

rossimario<OK>

Creazione, modifica e cancellazione delle utenze, in modo non interattivo

Nella sezione precedente è illustrato il meccanismo di creazione, modifica e cancellazione delle utenze, in modo interattivo, dove lo script nlnxrc richiede mano a mano le informazioni necessarie all'operatore. Tuttavia, i comandi nlnxrc user add, nlnxrc user passwd e nlnxrc user del, accettano degli argomenti, così da consentire di svolgere le loro operazioni senza bisogno di un intervento umano; in pratica, in questo modo, è possibile inserire tali comandi all'interno di altri script.

Gli argomenti previsti dai comandi in questione, devono essere forniti in modo completo, altrimenti, le informazioni mancanti vengono richieste in modo interattivo. A titolo di esempio viene mostrato in che modo creare e modificare ed eliminare l'utenza «rossimario», usata nella sezione precedente.

nlnxrc user add rossimario /home/5A1213/rossimario \
  \                "studente Rossi Mario 5A 2012/2013" \
  \                segretissimo1
[Invio]

nlnxrc user passwd rossimario supersegretissimo2[Invio]

nlnxrc user del rossimario[Invio]

NIS e NFS per utilizzare altre utenze

NLNX è 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 con un file system in sola lettura (come il DVD live) 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 nlnxrc nis-home start:

nlnxrc 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:

nlnx-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;

    nlnx-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]

Per approfondire l'argomento si possono consultare le sezioni 36.3 e 36.4.

Si osservi che l'utente tizio e gli altri utenti comuni standard, previsti per NLNX, 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 NLNX prevede la condivisione delle utenze che abbiano numeri UID da 1 000 in su, pertanto, anche volendo, le utenze standard di NLNX 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 NLNX contenga sempre queste utenze speciali, fa sì che possano condividere gli stessi dati se si attiva un servizio NFS.

Controllo dello spazio utilizzato

NLNX è organizzato per la gestione delle quote di utilizzo della memoria di massa per gli utenti (non vengono considerati i gruppi), ma per l'attivazione di questa occorre procedere inizialmente attraverso comandi manuali. Vengono riassunte brevemente le fasi da eseguire nei punti successivi, partendo dal presupposto che il kernel sia in grado di gestire tale funzionalità.

  1. Per prima cosa va controllato il file /etc/fstab, nel quale deve apparire l'opzione usrquota per le unità da tenere sotto controllo. Nel caso si debba sottoporre alla gestione delle quote la stessa unità che si trova innestata nella directory /, occorre creare un punto di innesto alternativo, come già prevede normalmente NLNX:

    /dev/sda4  none           swap   sw                                   0  0
    /dev/sda2  /              auto   defaults,usrquota,errors=remount-ro  0  1
    /dev/sda2  /RO-FS/RW-FS   auto   defaults,usrquota,errors=remount-ro  0  0
    proc       /proc          proc   defaults                             0  0
    none       /proc/bus/usb  usbfs  defaults                             0  0
    sys        /sys           sysfs  defaults                             0  0
    ...
    
  2. Se il file /etc/fstab viene modificato per unità che risultano essere già innestate, occorre procedere a un reinnesto, in modo che l'opzione usrquota venga acquisita correttamente. L'esempio segue quanto già visto nell'estratto di file /etc/fstab:

    mount -o remount /[Invio]

    mount -o remount /RO-FS/RW-FS[Invio]

  3. Quando le unità dispongono correttamente dell'opzione usrquota, va fatta la prima scansione per la creazione dei file auser.quota. Se si tratta di un file system che attualmente risulta utilizzato in lettura e scrittura, può essere necessaria l'opzione -m:

    quotacheck -u -v -c -m -a[Invio]

  4. Una volta fatta la scansione, si attiva la gestione delle quote con lo script /etc/init.d/quota:

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

    Naturalmente, all'arresto e al riavvio, questa operazione viene svolta automaticamente.

L'ultima fase consiste nell'attribuire effettivamente le quote agli utenti, per esempio tramite setquota, ma questa operazione va svolta effettivamente attraverso nlnxrc quota set:

nlnxrc quota set[Invio]

Quando si avvia il comando per la prima volta, viene creato il file /etc/nlnx/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

Quando si salva il file e si termina il funzionamento del programma di modifica dei file di testo, il controllo ritorna a nlnxrc che chiede se si vuole procedere con l'attribuzione delle quote, secondo quanto definito nel file. Se la risposta è affermativa, le quote vengono assegnate o modificate.

Per la precisione, le quote vengono assegnate relativamente allo spazio utilizzato, senza considerare la quantità di file (numeri inode), fissando lo stesso valore per la quota e il limite massimo (hard). Tuttavia, il valore esatto è maggiore rispetto a quello richiesto effettivamente; per la precisione viene assegnato il 25 % in più.

Il limite massimo è pari al limite della quota, per evitare che gli utenti si trovino improvvisamente a perdere dei file quando scade il tempo di riserva (il tempo di grazia). In pratica, se il limite è stato superato, l'operazione di scrittura fallisce e l'utente ne è subito consapevole.

Va osservato anche che la richiesta di un valore di quota troppo elevato e non gestibile, si conclude nella non attribuzione di alcun limite nella quota. D'altra parte, assegnando il valore zero, si ottiene esattamente di non attribuire alcun limite di utilizzo della memoria di massa.

La configurazione delle quote attraverso nlnxrc quota set è importante perché consente di attribuire la quota predefinita agli utenti che vengono aggiunti al sistema con il comando nlnxrc user add.

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 e 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:

nlnxrc 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:

timbro sopra le 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.

Utenze speciali per l'amministrazione

Per facilitare la gestione di un laboratorio, o di una rete locale che si affida a NLNX, è possibile creare delle utenze amministrative speciali, a cui viene associato lo script /etc/script/ADMIN, attraverso la mediazione del programma /etc/script/admin che controlla alcune cose prima di acquisire i privilegi di un super-utente con UID pari a zero. La creazione di tali utenze è riservata all'utente root, il quale procede con il comando nlnxrc admin add, in modo analogo a quanto già descritto a proposito degli utenti comuni, con la differenza che il nome di tale amministratore deve essere più corto.

L'utente amministratore che si crea in questo modo, predispone un'utenza Unix con numero UID superiore a 60 000, appartenente al gruppo admin, pari al numero 60 999. Ma oltre a questa, crea un'altra utenza Unix denominata win.nome, con UID pari a zero, senza una parola d'ordine valida, rendendola inservibile dal lato Unix, ma tale utenza viene invece aggiunta anche alla gestione di Samba, per consentire all'utente win.nome di aggiungere un elaboratore con MS-Windows alla gestione delle utenze di Samba.

Supponendo di avere creato l'utenza amministrativa rossi, l'accesso con questa al sistema offre un menù di funzioni:

login: rossi[Invio]

Password: digitazione_all'oscuro[Invio]

Il menù di funzioni cambia a seconda del contesto in cui viene avviato; per esempio, c'è differenza se si tratta di un elaboratore cliente o del servente che gestisce le utenze, inoltre c'è differenza se l'accesso proviene dalla console o da un collegamento remoto. Quello che segue è il menù che si ottiene da un collegamento remoto al servente che gestisce le utenze complessive della rete locale:

.------------------------Admin menu------------------------.
| Admin limited menu                                       |
| .------------------------------------------------------. |
| |   adduser         Add a new user                     | |
| |   passwd          Change a user's password           | |
| |   description     Change a user's description        | |
| |   user info       Show user info                     | |
| |   home info       Show home directory info           | |
| |   quota report    Show sorted user's quota           | |
| |   nis-make        Rebuild NIS database               | |
| |   add machine     Add a new MS-Windows computer      | |
| |   proxy access    HTTP proxy access permissions      | |
| |   admin passwd    Change your password               | |
| |   custom1         Custom script 1                    | |
| |   custom2         Custom script 2                    | |
| |   custom3         Custom script 3                    | |
| |   exit            Quit                               | |
| `------------------------------------------------------' |
|----------------------------------------------------------|
|                <  OK  >         <Cancel>                 |
`----------------------------------------------------------'

Tabella u60.24. Descrizione di alcune delle funzioni disponibili.

Funzione Descrizione
adduser
Consente di aggiungere un'utenza al sistema.
passwd
Consente di cambiare la parola d'ordine di un'utenza.
description
Consente di modificare la descrizione di un'utenza.
user info
home info
Consente di scorrere l'elenco degli utenti, in ordine di nominativo oppure in ordine di directory personale, per ottenere poi alcune informazioni salienti sull'utenza relativa.
quota report
Se è attiva la gestione delle quote, mostra l'elenco delle quote degli utenti, ordinata in modo decrescente per quantità di spazio utilizzato.
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.
add machine
Aggiunge un'utenza speciale, corrispondente a un elaboratore MS-Windows, per consentirgli l'accesso con Samba.
admin passwd
Consente all'amministratore di cambiarsi la propria parola d'ordine.
reboot
Esegue il riavvio degli elaboratori (devono essere selezionati).
shutdown
Avvia lo spegnimento degli elaboratori (devono essere selezionati).
customn
Avvia lo script CUSTOMn che deve essere presente nella directory /etc/script/. Si tratta di script personalizzati.
exit
Esce dal menù.

«a2» 2013.11.11 --- Copyright © Daniele Giacomini -- appunti2@gmail.com http://informaticalibera.net