[successivo] [precedente] [inizio] [fine] [indice generale] [violazione GPL] [translators] [docinfo] [indice analitico] [volume] [parte]
Dal punto di vista della configurazione, la distribuzione Debian cerca di interferire il meno possibile con le convenzioni acquisite nei sistemi Unix. In questo senso, sono poche le particolarità da tenere in considerazione per amministrare un sistema GNU/Linux Debian.
La procedura di inizializzazione del sistema è attivata dal'eseguibile init attraverso le indicazioni di /etc/inittab
. I livelli di esecuzione sono indicati brevemente nella tabella 355.1; di fatto si usa normalmente il livello numero due.
Tabella 355.1. Livelli di esecuzione tipici di una distribuzione Debian.
Livello di esecuzione | Utilizzo |
0 | Arresto del sistema. |
1 | Utente singolo. |
2 | Livello normale per la multiutenza. |
3 | Livello ausiliario per la multiutenza. |
4 | Livello disponibile per la multiutenza. |
5 | Livello disponibile per la multiutenza. |
6 | Riavvio del sistema. |
Il file /etc/inittab
è quello che dirige il funzionamento di Init; analizzandone il contenuto si può intendere il ruolo degli script della procedura di inizializzazione del sistema.
# /etc/inittab: init(8) configuration. # $Id: inittab,v 1.8 1998/05/10 10:37:50 miquels Exp $ # The default runlevel. id:2:initdefault: # Boot-time system configuration/initialization script. # This is run first except when booting in emergency (-b) mode. si::sysinit:/etc/init.d/rcS # What to do in single-user mode. ~~:S:wait:/sbin/sulogin # /etc/init.d executes the S and K scripts upon change # of runlevel. # # Runlevel 0 is halt. # Runlevel 1 is single-user. # Runlevels 2-5 are multi-user. # Runlevel 6 is reboot. l0:0:wait:/etc/init.d/rc 0 l1:1:wait:/etc/init.d/rc 1 l2:2:wait:/etc/init.d/rc 2 l3:3:wait:/etc/init.d/rc 3 l4:4:wait:/etc/init.d/rc 4 l5:5:wait:/etc/init.d/rc 5 l6:6:wait:/etc/init.d/rc 6 # Normally not reached, but fallthrough in case of emergency. z6:6:respawn:/sbin/sulogin # What to do when CTRL-ALT-DEL is pressed. ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now # Action on special keypress (ALT-UpArrow). kb::kbrequest:/bin/echo "Keyboard Request--edit /etc/inittab to let this work." # What to do when the power fails/returns. pf::powerwait:/etc/init.d/powerfail start pn::powerfailnow:/etc/init.d/powerfail now po::powerokwait:/etc/init.d/powerfail stop # /sbin/getty invocations for the runlevels. # # The "id" field MUST be the same as the last # characters of the device (after "tty"). # # Format: # <id>:<runlevels>:<action>:<process> 1:2345:respawn:/sbin/getty 38400 tty1 2:23:respawn:/sbin/getty 38400 tty2 3:23:respawn:/sbin/getty 38400 tty3 4:23:respawn:/sbin/getty 38400 tty4 5:23:respawn:/sbin/getty 38400 tty5 6:23:respawn:/sbin/getty 38400 tty6 # Example how to put a getty on a serial line (for a terminal) # #T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100 #T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100 # Example how to put a getty on a modem line. # #T3:23:respawn:/sbin/mgetty -x0 -s 57600 ttyS3
Attraverso il file /etc/inittab
vengono indicati due script fondamentali, attraverso cui si articola la procedura di inizializzazione del sistema. Si tratta di /etc/init.d/rcS
e /etc/init.d/rc
. Il primo viene utilizzato a ogni avvio del sistema e da questo dipendono le operazioni che vanno svolte una volta sola in quella occasione; il secondo serve ogni volta che si cambia il livello di esecuzione.
/etc/init.d/
È la directory che raccoglie gli script utilizzati nella fase di avvio del sistema e in quella di arresto.
/etc/init.d/rcS
È lo script di inizializzazione del sistema, organizzato in modo tale da eseguire gli script contenuti nella directory /etc/rcS.d/
, con l'argomento start. Per la precisione, si tratta di tutti gli script che corrispondono al modello S??*
, ovvero quelli che hanno un nome che inizia con una lettera «S» maiuscola ed è lungo almeno tre caratteri. In realtà, gli script della directory /etc/rcS.d/
sono solo collegamenti simbolici a script reali contenuti nella directory /etc/init.d/
.
In questo modo, tra le altre cose, si configura la tastiera, si attiva la memoria virtuale, si verifica il file system principale e lo si rimonta in lettura e scrittura. Se l'attivazione del file system principale fallisce, viene attivata una shell di emergenza per permettere una correzione del problema. Successivamente si attivano i moduli del kernel, quindi si passa al controllo degli altri file system e al loro montaggio. Infine, si configura e si attiva la rete, assieme ad altre operazioni di importanza minore, come il montaggio di file system di rete.
Al termine del suo lavoro normale, lo script /etc/init.d/rcS
esegue anche gli script che trova nella directory /etc/rc.boot/
, che esiste ancora per motivi di compatibilità con il passato.
/etc/rc.boot/
È una directory che dovrebbe essere eliminata nel prossimo futuro. Il suo scopo è contenere script da eseguire all'avvio del sistema, prima di entrare in un livello di esecuzione particolare.
In generale, questi script dovrebbero essere spostati nella directory /etc/init.d/
, collegandoli poi con dei collegamenti simbolici opportuni nella directory /etc/rcS.d/
.
/etc/init.d/rc
È lo script principale per il controllo dei livelli di esecuzione. Viene utilizzato da Init, attraverso le indicazioni di /etc/inittab
, con un argomento corrispondente al numero di livello di esecuzione da attivare.
/etc/init.d/rc livello_di_esecuzione
Semplificando un po' le cose, /etc/init.d/rc
si limita ad avviare tutti gli script che trova nella directory /etc/n.d/
(dove n rappresenta il livello di esecuzione richiesto), cominciando da quelli che iniziano con la lettera K e terminando con quelli che iniziano con la lettera S.
In realtà, questi script sono contenuti nella directory /etc/init.d/
, con nomi più espressivi, mentre nelle directory /etc/rcn.d/
sono contenuti solo dei collegamenti simbolici con nomi scelti appositamente per definire l'ordine in cui le operazioni devono essere svolte.
In questo modo, è possibile definire i livelli di esecuzione lasciati a disposizione, semplicemente copiandovi all'interno i collegamenti simbolici necessari e senza toccare alcuno script.
/etc/rcn.d/
Come accennato, si tratta delle directory riferite a ogni livello di esecuzione (n rappresenta il numero del livello stesso). Al loro interno si trovano solo collegamenti simbolici riferiti agli script che si vuole siano eseguiti.
Quando viene selezionato il livello di esecuzione relativo, vengono eseguiti in ordine alfabetico, prima gli script (o meglio i collegamenti) che iniziano con la lettera K (Kill) nella forma
/etc/rcn.d/script stop
allo scopo di disattivare il servizio particolare cui si riferiscono, quindi quelli che iniziano con la lettera S (Start), nella forma seguente:
/etc/rcn.d/script start
/etc/init.d/
È il vero contenitore degli script utilizzati dalla procedura di inizializzazione del sistema. Questi vengono utilizzati indirettamente attraverso collegamenti simbolici contenuti nella directory /etc/rcS.d/
e nelle directory /etc/rcn.d/
.
Molti di questi script possono essere utilizzati dall'amministratore per disattivare o attivare un servizio particolare, senza dover intervenire direttamente nel livello di esecuzione e senza dover ricordare tutte le implicazioni di un servizio particolare. Il formato generale è il seguente:
/etc/init.d/servizio {start|stop|restart|force-reload}
/sbin/start-stop-daemon
Si tratta di un programma specifico della distribuzione Debian (dovrebbe far parte del pacchetto dpkg) che facilita l'avvio e la conclusione del funzionamento dei demoni avviati attraverso la procedura di inizializzazione del sistema. Per esempio, l'avvio del demone gpm viene fatto nel modo seguente (le opzioni di gpm sono solo un esempio per semplificare lo script; si tenga presente inoltre che la riga significativa è divisa in due per motivi tipografici, utilizzando il simbolo ci continuazione \ delle shell Bourne):
echo -n "Starting mouse interface server: gpm" start-stop-daemon --start --quiet --exec /usr/sbin/gpm -- \ -m /dev/mouse -t ms echo "."
Nello stesso modo, l'arresto del demone viene fatto nel modo seguente:
echo -n "Stopping mouse interface server: gpm" start-stop-daemon --stop --quiet --oknodo --pidfile /var/run/gpmpid \ --exec /usr/sbin/gpm echo "."
L'uso di start-stop-daemon può essere approfondito leggendo la sua pagina di manuale: start-stop-daemon(8).
I file contenuti nella directory /etc/init.d/
, quando si riferiscono a dei servizi, hanno una struttura abbastanza comune, simile a quella seguente. Si fa riferimento all'ipotetico servizio «pippo», a cui corrisponde un demone con lo stesso nome.
#!/bin/sh # # Avvia o arresta il servizio «pippo» gestito attraverso il demone «pippo» # # Tizio Tizi <tizio@dinkel.brot.dg> # Prima di cominciare verifica che esista l'eseguibile del demone. test -x /usr/sbin/pippo || exit 0 # Analizza l'argomento e vi si adegua. case "$1" in start) echo -n "Avvio di un servizio inutile: pippo" start-stop-daemon --start --quiet --exec /usr/sbin/pippo echo "." ;; stop) echo -n "Arresto di un servizio inutile: pippo" start-stop-daemon --stop --quiet \ --pidfile /var/run/pippo.pid --exec /usr/sbin/pippo echo "." ;; restart) $0 stop $0 start ;; reload) echo -n "Rilettura della configurazione di pippo..." start-stop-daemon --stop --signal 1 --quiet \ --pidfile /var/run/named.pid --exec /usr/sbin/named echo "fatto." ;; force-reload) $0 restart ;; *) echo "Utilizzo: /etc/init.d/pippo {start|stop|reload|restart|force-reload}" >&2 exit 1 ;; esac exit 0
Nella prima parte viene verificato che esista effettivamente l'eseguibile del demone pippo; in caso contrario conclude lo script, ma senza restituire un errore (exit 0).
Subito dopo si passa all'analisi del primo (e unico) argomento fornito allo script:
se è start, si provvede ad avviare il demone attraverso start-stop-daemon;
se è stop, si provvede a eliminare il processo relativo, utilizzando l'informazione sul numero PID che dovrebbe essere contenuta nel file /var/run/pippo.pid
, creato dal demone pippo stesso;
se è restart, vengono ripetute le operazioni corrispondenti a stop e start in sequenza;
se è reload (si tratta di un'opzione che non è disponibile in tutti gli script di questo tipo), viene inviato un segnale SIGHUP (1) al demone, in modo che questo rilegga la configurazione;
se è force-reload, viene eseguita in pratica l'operazione corrispondente a restart, con lo scopo di obbligare alla rilettura della configurazione, anche se ciò costringe ad arrestare e a riavviare il servizio.
Le directory /etc/rcn.d/
e /etc/rcS.d/
, servono a contenere una serie di collegamenti simbolici che puntano a script reali contenuti in /etc/init.d
. I due listati seguenti si riferiscono al contenuto ipotetico di /etc/rc1.d/
e /etc/rc2.d/
:
lrwxrwxrwx 1 root root 14 ago 9 15:18 K11cron -> ../init.d/cron lrwxrwxrwx 1 root root 17 ago 9 15:18 K12kerneld -> ../init.d/kerneld lrwxrwxrwx 1 root root 21 ago 9 15:18 K15netstd_init -> ../init.d/netstd_init lrwxrwxrwx 1 root root 17 ago 9 15:18 K18netbase -> ../init.d/netbase lrwxrwxrwx 1 root root 14 ago 9 15:18 K19bind -> ../init.d/bind lrwxrwxrwx 1 root root 14 ago 9 15:18 K20exim -> ../init.d/exim lrwxrwxrwx 1 root root 13 ago 9 15:18 K20gpm -> ../init.d/gpm lrwxrwxrwx 1 root root 17 ago 9 15:18 K20logoutd -> ../init.d/logoutd lrwxrwxrwx 1 root root 15 ago 9 15:18 K20lprng -> ../init.d/lprng lrwxrwxrwx 1 root root 13 ago 9 15:18 K20ppp -> ../init.d/ppp lrwxrwxrwx 1 root root 13 ago 9 15:18 K20ssh -> ../init.d/ssh lrwxrwxrwx 1 root root 20 ago 9 15:18 K25nfs-server -> ../init.d/nfs-server lrwxrwxrwx 1 root root 21 ago 9 15:18 K30netstd_misc -> ../init.d/netstd_misc lrwxrwxrwx 1 root root 16 ago 9 15:18 K89pcmcia -> ../init.d/pcmcia lrwxrwxrwx 1 root root 18 ago 9 15:18 K90sysklogd -> ../init.d/sysklogd lrwxrwxrwx 1 root root 16 ago 9 15:18 S20single -> ../init.d/single
lrwxrwxrwx 1 root root 18 ago 9 15:18 S10sysklogd -> ../init.d/sysklogd lrwxrwxrwx 1 root root 16 ago 9 15:18 S11pcmcia -> ../init.d/pcmcia lrwxrwxrwx 1 root root 17 ago 9 15:18 S12kerneld -> ../init.d/kerneld lrwxrwxrwx 1 root root 21 ago 9 15:18 S15netstd_init -> ../init.d/netstd_init lrwxrwxrwx 1 root root 17 ago 9 15:18 S18netbase -> ../init.d/netbase lrwxrwxrwx 1 root root 14 ago 9 15:18 S19bind -> ../init.d/bind lrwxrwxrwx 1 root root 14 ago 9 15:18 S20exim -> ../init.d/exim lrwxrwxrwx 1 root root 13 ago 9 15:18 S20gpm -> ../init.d/gpm lrwxrwxrwx 1 root root 17 ago 9 15:18 S20logoutd -> ../init.d/logoutd lrwxrwxrwx 1 root root 15 ago 9 15:18 S20lprng -> ../init.d/lprng lrwxrwxrwx 1 root root 13 ago 9 15:18 S20ppp -> ../init.d/ppp lrwxrwxrwx 1 root root 13 ago 9 15:18 S20ssh -> ../init.d/ssh lrwxrwxrwx 1 root root 20 ago 9 15:18 S25nfs-server -> ../init.d/nfs-server lrwxrwxrwx 1 root root 21 ago 9 15:18 S30netstd_misc -> ../init.d/netstd_misc lrwxrwxrwx 1 root root 14 ago 9 15:18 S89cron -> ../init.d/cron lrwxrwxrwx 1 root root 19 ago 9 15:18 S99rmnologin -> ../init.d/rmnologin
I collegamenti che iniziano con la lettera «S» vengono avviati ordinatamente all'attivazione del livello di esecuzione corrispondente, con l'argomento start, mentre quelli che iniziano con la lettera «K» vengono avviati prima di passare a un nuovo livello di esecuzione, con l'argomento stop.
Il numero che segue la lettera «S» e «K», serve a definire un ordine (alfanumerico), corrispondente a quello in cui i servizi vanno avviati o arrestati. Se si volesse aggiungere uno script, nella directory /etc/init.d/
per la gestione di un servizio addizionale, si dovrebbero predisporre i collegamenti relativi nella directory in cui servono: per esempio potrebbe essere necessario un collegamento «K» nelle directory /etc/rc0.d/
, /etc/rc1.d/
e /etc/rc6.d/
, mentre nelle altre directory /etc/rc[2-5].d/
si potrebbe inserire un collegamento «S», a seconda di come si vogliono gestire i livelli di esecuzione da due a cinque.
Il programma update-rc.d permette di facilitare la creazione e l'eliminazione dei collegamenti simbolici nelle directory /etc/rcn.d/
. In generale, il suo utilizzo non è indispensabile, ma torna molto utile nella realizzazione di script legati all'installazione e alla disinstallazione dei pacchetti. Qui viene descritto solo il suo uso elementare, dal momento che si può fare tutto quello che si vuole anche senza l'aiuto di questo programma. Eventualmente si può consultare la sua pagina di manuale update-rc.d(8).
update-rc.d nome_script remove
update-rc.d nome_script defaults
Nel primo caso, update-rc.d elimina i collegamenti simbolici, riferiti allo script indicato, da tutte le directory /etc/rcn.d/
, compresa la directory /etc/rcS.d/
, purché questo sia effettivamente assente dalla directory /etc/init.d/
.
Nel secondo caso, update-rc.d crea i collegamenti simbolici, riferiti allo script indicato, che deve trovarsi nella directory /etc/init.d/
, in base a ciò che di solito è più opportuno: nelle directory corrispondenti ai livelli zero, uno e sei, vengono creati dei collegamenti di tipo
K20nome_script
Mentre nelle directory dei livelli da due a cinque, vengono creati dei collegamenti di tipo
S20nome_script
Per esempio, se è stato creato lo script pippo, ed è stato collocato nella directory /etc/init.d/
, si possono predisporre i collegamenti simbolici con il comando seguente:
#
update-rc.d pippo defaults
[Invio]
Adding system startup for /etc/init.d/pippo ... /etc/rc0.d/K20pippo -> ../init.d/pippo /etc/rc1.d/K20pippo -> ../init.d/pippo /etc/rc6.d/K20pippo -> ../init.d/pippo /etc/rc2.d/S20pippo -> ../init.d/pippo /etc/rc3.d/S20pippo -> ../init.d/pippo /etc/rc4.d/S20pippo -> ../init.d/pippo /etc/rc5.d/S20pippo -> ../init.d/pippo
Una volta eliminato lo script pippo dalla directory /etc/init.d/
, si possono eliminare i collegamenti simbolici relativi con il comando seguente:
#
update-rc.d pippo remove
[Invio]
Removing any system startup links for /etc/init.d/pippo ... /etc/rc0.d/K20pippo /etc/rc1.d/K20pippo /etc/rc2.d/S20pippo /etc/rc3.d/S20pippo /etc/rc4.d/S20pippo /etc/rc5.d/S20pippo /etc/rc6.d/K20pippo
La distribuzione Debian non ha un sistema centralizzato per la configurazione, lasciando che ogni pacchetto gestisca la configurazione a suo modo. L'esempio più importante di questa impostazione sta nella configurazione della rete, che avviene attraverso la modifica diretta di uno script di quelli che appartengono alla procedura di inizializzazione del sistema: /etc/init.d/network
.
La configurazione della tastiera riguarda il pacchetto kbd e avviene per mezzo dello script /etc/init.d/keymaps.sh
, che viene avviato tramite un collegamento simbolico contenuto nella directory /etc/rcS.d/
. Questo script carica automaticamente la mappa della tastiera corrispondente al file /etc/kbd/default.kmap.gz
. Evidentemente, per definire una mappa per la tastiera differente, basta copiare il file opportuno nella directory /etc/kbd/
, dandogli il nome default.kmap.gz
.
Sempre riguardo al pacchetto kbd, la configurazione dei caratteri dello schermo avviene per mezzo dello script /etc/rc.boot/kbd
, che utilizza le definizioni contenute nel file /etc/kbd/config
. Questo ultimo file è in pratica un pezzo di script, per cui basta assegnare alla variabile CONSOLE_FONT il nome del file di definizione dei caratteri che si desidera. Per esempio,
CONSOLE_FONT=lat1u-16.psf.gz
fa sì che venga caricato il file /usr/share/consolefonts/lat1u-16.psf.gz
.
Come accennato, la rete viene configurata attraverso lo script /etc/init.d/network
. Questo non ha bisogno di accorgimenti particolari, dal momento che è collegato normalmente solo alla directory /etc/rcS.d/
, che contiene i collegamenti simbolici avviati una volta sola all'avvio del sistema.
Di solito, lo script in questione viene creato nel momento in cui si installa la distribuzione per la prima volta, in ogni caso, può bastare una cosa come l'esempio seguente, da modificare opportunamente, soprattutto in base al tipo e al numero di interfacce di rete.
#! /bin/sh ifconfig lo 127.0.0.1 netmask 255.0.0.0 # route add -net 127.0.0.0 netmask 255.0.0.0 dev lo route add -host 127.0.0.1 dev lo ifconfig eth0 192.168.1.1 netmask 255.255.255.0 broadcast 192.168.1.255 route add -net 192.168.1.0 netmask 255.255.255.0 dev eth0 route add default gw 192.168.1.254 metric 1
Nella directory /etc/rcS.d/
basta quindi il collegamento simbolico S40network
, che punta a ../init.d/network
.
In generale, la correzione dell'orologio hardware si ottiene configurando opportunamente il file /etc/adjtime
. Tuttavia, in fase di avvio del sistema operativo, è importante sapere se l'orologio hardware è puntato sul tempo universale coordinato, oppure sull'ora locale.
Dal momento che lo script che si occupa di queste cose è controllato da /etc/init.d/rcS
e dato che questo viene configurato con il file /etc/default/rcS
, all'interno di questo ultimo si può modificare la variabile GMT. In pratica, per indicare che l'orologio hardware è posizionato sul tempo universale si assegna il valore -u:
# Set GMT="-u" if your system clock is set to GMT, and GMT="" if not. GMT="-u"
La gestione del mouse per lo schermo a caratteri avviene attraverso il demone gpm, come di consueto. L'avvio e l'arresto del servizio è organizzato come al solito attraverso uno script contenuto nella directory /etc/init.d/
. Normalmente, questo script carica la configurazione contenuta nel file /etc/gpm.conf
. Attraverso le variabili dichiarate in questo file di configurazione, lo script di avvio del servizio genera le opzioni opportune per la riga di comando di gpm.
Secondo la politica della distribuzione Debian, se un programma ha bisogno che siano definite delle variabili di ambiente, o delle funzioni di shell, per questo deve essere predisposto uno script di avvio apposito, in modo da non dover disturbare l'utente con questa configurazione. In pratica, la configurazione globale delle shell non deve essere modificata dall'installazione di un pacchetto.
In generale, se necessario per qualche ragione, l'amministratore del sistema può intervenire nel file /etc/profile
e negli altri file di configurazione delle altre shell. Come al solito, potrebbe convenire l'inserimento di alcuni alias per evitare la cancellazione involontaria dei file e inoltre si potrebbe impostare il linguaggio predefinito. L'esempio seguente fa riferimento al caso della shell Bash:
alias rm='rm -i' alias cp='cp -i' alias mv='mv -i' LANG="it_IT.ISO-8859-1" export LANG
Per quanto riguarda la configurazione personale delle shell, non è previsto niente di particolare, a parte il caso dell'utente root.
Con la distribuzione Debian si utilizzano preferibilmente i programmi adduser e addgroup per registrare nel sistema degli utenti nuovi. Questi due sono un programma Perl unico, che si configura con il file /etc/adduser.conf
.
In generale, non dovrebbe essere necessario modificare questa configurazione, soprattutto per non uscire dalla politica predefinita della distribuzione. In generale, si può osservare che vengano gestiti i gruppi privati, per cui, alla registrazione di un utente, viene aggiunto anche un nuovo gruppo con lo stesso nome e lo stesso numero GID.
In generale, gli utenti e i gruppi ricevono un numero UID e GID compreso tra 1 000 e 29 999; l'utente nobody ha il numero UID 65 534, ed è abbinato al gruppo nogroup, con lo stesso numero GID.
Il sistema di stampa adottato dalla distribuzione Debian è LPRng, che in generale è abbastanza compatibile con quello tradizionale dello Unix BSD. Rispetto ad altre distribuzioni GNU/Linux, Debian lascia all'amministratore la configurazione manuale del file /etc/printcap
che è comunque piuttosto semplice.
Assieme al pacchetto di LPRng viene installato normalmente anche Magicfilter, che come suggerisce il nome è un sistema di filtri per stampanti. Nella directory /etc/magicfilter/
si trovano una serie di script di Magicfilter, uno per ogni tipo di stampante previsto. È sufficiente modificare la configurazione del file /etc/printcap
, in modo da utilizzare il filtro adatto per la propria stampante. L'esempio seguente definisce la stampante lp abbinata alla prima porta parallela a cui si trova connessa una stampante compatibile con il modello HP Laserjet:
# /etc/printcap: printer capability database. See printcap(5). # You can use the filter entries df, tf, cf, gf etc. for # your own filters. See the printcap(5) manual page for further # details. lp|HP Laserjet :lp=/dev/lp0 :sd=/var/spool/lpd/lp :af=/var/log/lp-acct :lf=/var/log/lp-errs :if=/etc/magicfilter/laserjet-filter :pl#66 :pw#80 :pc#150 :mx#0 :sh
Come si può osservare, le righe della direttiva lp non sono terminate dal simbolo di continuazione \, che con LPRng non è necessario.
Per determinare quale sia il filtro migliore per la propria stampante, occorre fare qualche prova, dal momento che per uno stesso modello ci possono essere diverse alternative. |
Per quanto riguarda la stampa dei file di testo, volendo sfruttare sistematicamente A2ps per l'impaginazione, si può modificare in coda allo script di Magicfilter l'istruzione seguente:
#! /usr/sbin/magicfilter #... # Default entry -- for normal (text) files. MUST BE LAST. #default cat \eE\e&k2G\e(0N \eE default pipe a2ps --portrait --columns=1 --margin=30 \ --no-header --borders=no \ --chars-per-line=80 --font-size=10 \ --interpret=yes --output=- \ 2> /dev/null
La distribuzione Debian organizza la definizione del formato della carta attraverso il file /etc/papersize
, il quale deve contenere la sigla corrispondente. Di solito i programmi interpretano correttamente i nomi: a3, a4, a5, b5, letter, legal. Eventualmente, per gli altri formati si può utilizzare una delle definizioni comprensibili per Ghostscript.
A questo file di configurazione è abbinata una libreria, che in teoria dovrebbe essere utilizzata dai programmi che hanno qualcosa a che fare con la stampa. Per esempio, Ghostscript non ha bisogno dell'opzione -sPAPERSIZE perché riesce a ottenere questa informazione dal file di configurazione.
Il nome del sistema, così come lo intende il programma di servizio hostname, viene definito nel file /etc/hostname
. Da lì viene letto in fase di avvio del sistema.
Un altro file di configurazione simile è /etc/mailname
, che dovrebbe contenere il nome di dominio completo da utilizzare per inviare messaggi di posta elettronica.
Per evitare la proliferazione incontrollata di permessi strani attribuiti agli eseguibili, soprattutto per ciò che riguarda i bit SUID e SGID, la distribuzione GNU/Linux Debian organizza uno script eseguito giornalmente nell'ambito del sistema Cron, con lo scopo di controllare e correggere tali permessi. Questo script si avvale della configurazione contenuta nel file /etc/suid.conf
, che contiene semplicemente un elenco di eseguibili con i permessi che dovrebbero avere. Segue un estratto molto semplice e intuitivo del suo contenuto:
# Configuration File for suid programs or special permissions # # The format is: # package file user group permissions lsof-2.0.35 /usr/sbin/lsof root kmem 2755 emacs /usr/lib/emacs/20.3/i386-debian-linux-gnu/movemail root mail 2755 emacs /usr/lib/emacs/19.34/i386-debian-linux/movemail root mail 2755 apache-common /usr/bin/htpasswd root root 755 apache-common /usr/lib/apache/suexec root root 755 xscreensaver /usr/X11R6/bin/xscreensaver root shadow 2755 xcdroast /usr/bin/xcdroast root root 4755 ssh /usr/bin/ssh1 root root 4755 ...
In generale, questo file viene aggiornato automaticamente ogni volta che si installa un pacchetto che richiede dei permessi speciali sui suoi eseguibili; tuttavia, quando si vuole cambiare qualcosa in modo manuale, occorre ricordarsi di intervenire anche qui per rendere la modifica permanente.
Susan G. Kleinmann, Sven Rudolph, Joost Witteveen, The Debian GNU/Linux FAQ, 1999
Ian Jackson, Christian Schwarz, Debian Policy Manual, 1998
<http://ftp.it.debian.org/debian/doc/package-developer/policy.txt.gz>
<http://ftp.it.debian.org/debian/doc/package-developer/policy.html.tar.gz>
<http://ftp.it.debian.org/debian/doc/package-developer/policy.pdf.gz>
<http://ftp.it.debian.org/debian/doc/package-developer/policy.ps.gz>
daniele @ swlibero.org
Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome configurazione_di_una_distribuzione_debian.html
[successivo] [precedente] [inizio] [fine] [indice generale] [violazione GPL] [translators] [docinfo] [indice analitico]