[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [translators] [docinfo] [indice analitico] [volume] [parte]
Nella gestione di sistemi con molte utenze, diventa presto importante trovare un modo semplice per limitare l'accesso o le risorse loro concesse. In questo capitolo si annotano alcune soluzione «semplici» dal punto di vista realizzativo.
Un metodo molto semplice per impedire l'accesso a un utente, tanto più se si tratta di un utente fittizio, che non può e non deve avere materialmente accesso, consiste nell'attribuire come shell un programma che si comporti in modo diverso dal previsto. Di solito, per queste cose si usa il programma false, che tradizionalmente si limita a restituire un valore che rappresenta un errore, cosa che generalmente si considera equivalere a Falso. Ecco un esempio estratto da un file /etc/passwd
:
|
È evidente che tali utenti non hanno nemmeno una parola d'ordine valida, ma questa prudenza ulteriore non può essere dannosa.
Quando si vuole usare un metodo del genere per delle utenze reali, allo scopo di impedire temporaneamente l'accesso per qualche ragione, può essere più conveniente l'uso di un programma specifico, che possa dare delle informazioni all'utente che viene allontanato dal sistema. A questo proposito si può usare, per esempio, il programma falselogin, (1) che va utilizzato nel modo seguente nel file /etc/passwd
:
|
Lo scopo di falselogin è quello di mostrare all'utente un messaggio, che viene configurato con il file /etc/falselogin.conf
. Quello che segue è l'esempio del file di configurazione predefinito nella distribuzione GNU/Linux Debian:
|
Come si può intuire, sono disponibili delle metavariabili indicate secondo la forma %nome%. L'elenco completo di queste è disponibile nella pagina di manuale falselogin(1).
Qualunque sia il programma che si intende indicare in funzione di shell (reale o fittizia che sia), è necessario che questo sia previsto nel file /etc/shells
:
|
In certi casi, la gestione delle quote (capitolo 116) può essere scomoda o creare una complicazione eccessiva. Se si limita agli utenti la disponibilità di poche shell compatibili nell'uso dei file di configurazione, si può intervenire proprio su questi per svolgere una serie di controlli prima di mettere l'utente in condizione di operare.
Se si può contare sull'uso del file /etc/profile
per un gruppo limitato di shell più o meno compatibili con lo standard POSIX, si può aggiungere in coda a tale script il codice seguente:
|
Lo scopo è, come si può intuire, quello di informare l'utente, contando sulla sua collaborazione. È evidente che lo script può essere reso più efficace, per esempio inviando un messaggio di posta elettronica all'amministratore quando un utente supera lo spazio consentito, arrivando anche a interdire l'utenza se si l'utente non provvede. Per esempio, si potrebbe intervenire così:
|
Vale la pena di descrivere alcuni comandi che possono risultare un po' complessi a prima vista. Nella riga numero 13 si vede l'uso del comando du per contare lo spazio utilizzato a partire dalla directory personale dell'utente:
|
L'opzione -bs serve a richiedere un conteggio complessivo, espresso in byte. Il risultato viene filtrato da sed per conservare solo l'informazione numerica, infatti, ciò che emette du potrebbe essere un testo simile a quello seguente:
29546091 /home/tizio |
Dal momento che tra il numero che esprime lo spazio utilizzato e la directory c'è esattamente un carattere di tabulazione (il carattere <HT>), sed va a cercare proprio quello ed elimina tutto il resto. Alla fine, il valore viene assegnato alla variabile di ambiente HOME_DISK_SPACE_USED.
Nella riga numero 15 viene eseguito un calcolo, con l'aiuto di bc, che riceve l'espressione da calcolare attraverso lo standard input. Il risultato emesso alla fine da bc, viene assegnato alla variabile HOME_DISK_SPACE_USED_PERCENTAGE.
Quando si condividono le stesse utenze in una rete locale (si veda il capitolo sul NIS: 204), può capitare che si voglia evitare la possibilità di accedere agli utenti comuni presso un elaboratore particolare. Si può svolgere un controllo di questo tipo, rifiutando l'accesso a tutti gli utenti, tranne l'amministratore e altre utenze particolari, utilizzando la stessa tecnica già mostrata nella sezione precedente, intervenendo nel file /etc/profile
:
|
Appunti di informatica libera 2006.07.01 --- Copyright © 2000-2006 Daniele Giacomini -- <daniele (ad) swlibero·org>
1) Falselogin GNU GPL
Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome limiti_alle_utenze.htm
[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [translators] [docinfo] [indice analitico]