linux user group brescia

immagine del castello

Archivio della mailing list

kppp over redhat 7.3

Maurizio Paolini paolini a dmf.unicatt.it
Lun 4 Nov 2002 10:37:40 UTC
> From: "cris" <cris a siux.net>
>
> Grazie per la risposta... 
>
> nel frattempo ho verificato che il kppp lanciato in realtà è un collegamento 
> al file consolehelper, che non so che faccia; il problema è  risolvibile 
> avviando non il link /usr/bin/kppp , ma il file /usr/sbin/kppp dopo averne 
> modificato i diritti di accesso... e tutto è ok! 

Si tratta appunto della gestione dei permessi per permettere all'utente che
sta usando la console di accedere a certi servizi.

Se noti infatti, in /usr/bin ci sono parecchi eseguibili che sono nientaltro
che un link simbolico a "consolehelper", ad esempio /usr/bin/poweroff.

Prendiamo come esempio proprio il comando "poweroff".  E' piuttosto sensato
che in una tipica configurazione "domestica" l'utente che sta utilizzando
la console (cioe' sta seduto fisicamente alla tastiera del PC in questione
e NON e' collegato via rete) abbia il diritto di spegnere la macchina.

Questo puo' essere stridente per un purista "unix"; nel mondo unix pero'
la macchina "personal" non e' di fatto contemplata e si tratta quindi di trovare
un compromesso.

L'idea e' che chi e' seduto fisicamente davanti alla macchina puo' (ad esempio)
sempre spegnerla brutalmente togliendo la corrente :-(.  A quel punto e' meglio
che abbia la possibilita' di spegnerla a dovere, senza che debba conoscere la
password di root.  Una questione simile si ha per l'accesso ai dispositivi, ad
esempio il floppy:  e' sensato che chi e' fisicamente alla console possa ad esempio
poter fare un "cat >/dev/fd0", ma che NON lo possa fare uno collegato via rete.

Nella distribuzine "redhat" la questione e' affrontata utilizzando il meccanismo
"pam".

In prima battuta si tratta di riconoscere l'utente che sta alla console.  All'atto
pratico viene utilizzato il file

   /var/run/console.lock

che (se esiste) contiene il nome dell'utente che, secondo il sistema, sta utilizzando
in quel momento la console, e la directory

   /var/run/console

che contiene un file per ogni utente che in quel momento ha una sessione aperta
sulla console.  C'e' un problema grosso di fondo, insito sulla multiutenza unix:
in ogni momento ci possono essere piu' utenti diversi, tutti loggati sulla console
(ad esempio uno su tty1, un altro su tty2 e un terzo che usa X); solo a uno di questi
puo' essere data l'ownership dei devices.  La scelta viene fatta come segue:

1. root e' esclusa dal conteggio, in quanto ha comunque la possibilita' di fare tutto
2. il primo utente *non root* che accede sulla console acquisisce i diritti di accesso
3. i diritti vengono "resettati" a root solo quando l'utente che li ha al momento non esce
dal sistema (in tutte le console su cui e' loggato e da X).

Il meccanismo e' delicato, e spesso non funziona magari solo perche' 'tizio' si e' 
collegato su tty1 e poi si e' dimenticato di fare il logout, e allora caio che si
collega tramite 'xdm' non ha accesso a (faccio per dire) kppp e gli viene chiesta la
password di root.

mp




Maggiori informazioni sulla lista Lug