  Il Control+Alt+End Micro HowTo
  Galluzzo Gabriele (gnappoTOGLIMI@mail.viplink.it)
  v. 0.01 15/9/1998

  Questo documento nasce dall'esigenza di avere la possibilit di effet
  tuare in modo rapido lo shutdown ed il reboot della Linux Box premendo
  pochi tasti. In particolare, usando una macchina con un utente nor
  male, sarebbe comodo avere la possibilit di effettuare reboot e shut
  down con due differenti combinazioni di tasti senza diventare root.
  Con questo (micro) HowTo cercher di dare una "pezza" che possa essere
  utile a quanti, come me, sentono l'esigenza di "uscire rapidamente" da
  Linux (per rientrarci per subito dopo ;-) ). Non me ne vogliano i
  guru se dico cose a loro arcinote.

  1.  Copyright

  Potete copiare, diffondere questo HowTo.

  Se lo modificate, migliorate (cosa di sicuro molto facile :) ) o lo
  traducete mi piacerebbe saperlo (vedi ``Note Finali'').



  2.  Nota legale

  Quanto riportato funziona sul mio sistema RedHat 5.0 ed  frutto di
  mie personali sperimentazioni, non assicuro che funzioni sul vostro
  sistema (non sono un guru!).

  Se fate i backup dei file che modificate non dovrebbero esserci
  problemi se qualcosa dovesse andare storto.

  Usate quanto descritto a vostro rischio e pericolo.


  3.  Soluzione !

  La soluzione a questo (piccolo) problema  abbastanza semplice: far
  capire ad init che vogliamo usare CTRL+ALT+END per lo shutdown.

  Il problema  che lui capisce l'evento CTRL+ALT+CANC ma non quello che
  ci serve.

  Allora dobbiamo andare un po' pi a monte e modifichiamo il file di
  mappa dei caratteri.

  Personalmente uso it.map.gz che si trova nella directory
  /usr/lib/kbd/keytables/ (uso una RedHat 5.0) per cui far riferimento
  a questa mappa.

  Nella documentazione del kbd c' un riferimento ad una "curiosa"
  azione che pu essere associata a QUALSIASI tasto o combinazione di
  tasto+modificatori: Spawn_Console.

  Questa azione, a dispetto del nome (a nota nell'autore del kbd), pu
  essere usata per qualsiasi cosa.


    Come prima cosa copiamo /usr/lib/kbd/keytables/it.map.gz in /tmp o
     dovunque volete, serve solo per lavorare tranquilli.

    Poniamoci in /tmp o dove lo avete copiato.

    Scompattiamolo (potreste averlo gi in forma decompressa): gunzip
     it.map.gz

    Editiamolo : vi it.map

    A questo punto cerchiamo la riga con: keycode 107 = Select ed
     aggiungiamovi sotto la riga seguente (se gi ci fosse la
     modificheremo):


               control alt     keycode 107 = Spawn_Console




  (attenzione agli spazi!, non so quanto il kbd sia permaloso al
  riguardo, per non offenderlo usiamo la sua spaziatura).

  L'aspetto di it.map dovrebbe essere il seguente (per il tasto End):


       keycode 107 = Select
               control alt     keycode 107 = Spawn_Console





    Ricompattiamo: gzip it.map

    Ricopiamolo al suo posto: cp -f it.map.gz /usr/lib/kbd/keytables/

    Carichiamo la nuova mappa: loadkeys it.map

    Proviamo la combinazione ctrl+alt+end ... non funziona!

  Occorre dire ad init cosa vogliamo e per farlo editiamo il file
  /etc/inittab.

    Solita copia di sicurezza: cp /etc/inittab /tmp

    Editiamolo: vi inittab

    Inseriamo le righe seguenti:


       # Cattura CTRL+ALT+END
       ce::kbrequest:/sbin/shutdown -h now





  (Nota che c' all'inizio della seconda riga una coppia di caratteri
  (ce) arbitrari ma che devono essere comunque unici nell'inittab,
  potete sostituirla con qualsiasi combinazione volete, inoltre il
  carattere # indica una riga di commento).

  Il punto focale  "kbrequest" che dice ad inittab che c' una richi
  esta dalla tastiera e che deve eseguire il programma che gli abbiamo
  specificato che nel nostro caso  proprio lo shutdown.

    Per far s che init sappia che  stato cambiato il suo file di
     configurazione diamo un bel:


       telinit q


  Ora  tutto a posto, salvate tutto quello che avete aperto e date un
  bel ctrl+alt+end.

  Et voil lo shutdown  servito!  Per un ulteriore test, dopo aver
  rebootato Linux, date ctrl+alt+canc e dovrebbe effettuare il reboot.

  Per ricapitolare ora abbiamo disponibili:

     The Three Finger Salute
        che effettua il reboot   : ctrl+alt+canc

     The Three Finger Salute2
        che effettua lo shutdown : ctlr+alt+end

  NOTA: Se l'evento kbdrequest  gi gestito da init, quanto descritto
  in questo documento non credo che funzioner (non l'ho testato ma da
  quanto ho capito c' un solo evento kbdrequest gestibile da init).

  Per accertarsi che questo evento non sia gi gestito  sufficiente
  dare uno sguardo al file inittab e vedere se  gi presente un
  kbrequest (nelle distribuzioni che ho visto non c' mai un kbrequest
  gi gestito, ma conviene controllare).

  In ogni caso se avete altre soluzioni siete vivamente invitati ad
  inviarmele (vedi ``Note Finali'' alla fine del documento).



  3.1.  Limitazione dello shutdown

  Potrebbe darsi il caso che abbiate la Linux Box condivisa con alcune
  persone di cui non vi fidate troppo e che vogliate essere loggato voi
  per effettuare lo shutdown.

  Niente paura!  sufficiente editare il file /etc/shutdown.allow ed
  inserirvi i nomi di login degli utenti che devono essere loggati per
  consentire a tutti di dare le sequenze di reboot e shutdown.

  Per esempio se /etc/shutdown.allow contiene


       root
       pippo
       pluto




  allora QUALSIASI utente (per es. paperino) pu dare le due sequenze:
  ctrl+alt+end e ctrl+alt+canc SOLO se almeno uno dei tre utenti (root,
  pluto, pippo)  loggato da console.

  In caso contrario non avviene nessuno shutdown/reboot.


  4.  Documenti ispiratori e ringraziamenti

  Ringrazio tutti quelli che supportano, sviluppano, diffondono,
  criticano, (positivamente) e fanno crescere Linux e ne apprezzano lo
  "spirito" libero, il Pluto Group, Linus Torvalds & C. :) e Tiziana C.
  (Titti ;-P ).

  Documenti consigliati, secondo me, per saperne di pi sono (i path
  sono quelli della RedHat 5.0):


    la documentazione del kbd (/usr/doc/kbd-xxx dove xxx  la vesione)

    il Keyboard HowTo (/usr/doc/HOWTO/Keyboard-and-Console-HOWTO.gz)

    l' Italian-HowTo (/usr/doc/HOWTO/Italian-HOWTO.gz) che mi ha dato
     la voglia di saperne di pi sulla tastiera in Linux.


  5.  Note Finali

  Se questo documento vi  stato utile fatemelo sapere :
  (gnappoTOGLIMI@mail.viplink.it ovviamente dovete togliere TOGLIMI).

  Se vi ha procurato fastidi, notti insonni o avete trovato soluzioni
  migliori avete l'obbligo :) di farmelo sapere.

  Se intedete tradurlo (nel rarissimo caso in cui ci fosse ritenuto
  opportuno :) ) mi piacerebbe che me lo diceste sempre all'indirizzo
  email precedente.

  Grazie a Te che hai avuto la pazienza di leggere questo HowTo fin qui!













































