creppolo ha scritto:è possibile? o meglio, è sicuro che è possibile, ma come?
si è possibile.
provo a scavare un po' nella memoria perchè su ste cose sono un po' arrugginito.
attualmente la stable di slackware per quanto riguarda i device e la gestione lato utente non root ha un'architettura di questo tipo
udev -> hal -> d-bus -> desktop environment(KDE/XFCE)
dove
- udev è il demone che gira con privilegi di amministratore e che si occupa di creare, su richiesta del kernel i device sotto /dev
- hal è uno strato di astrazione hardware che rende possibile tra le altre cose la comunicazione con i device da un utente con privilegi 'normali' consentendo robe tipo il montaggio dei device rimovibili
- d-bus è un sistema di comunicazione fra processi che viene usato da hal per comunicare con le applicazioni
quindi attualmente quando per esempio inserisci un device rimovibile accade che
1) il kernel rileva la nuova periferica con tutte le partizioni etc etc etc
2) udev riceve il segnale dal kernel che deve creare i device sotto /dev
3) hal, tramite d-bus, lancia a tutti i processi registrati (tipicamente desktop environment o file manager) l'evento che indica l'inserimento di una nuovo device
4) il desktop environment(o chi per lui) ricevuto l'evento, in base a cosa fa l'utente rilancia l'eventuale comando di montaggio ad hal che effettua realmente l'operazione
ora questo giro con applicazioni da riga di comando nn so quanto sia praticabile percio' per ottenere lo stesso effetto si agisce solitamente in due modi
- si bypassa hal/d-bus e compagnia bella sfruttando direttamente la possibilità di creare delle regole ad-hoc per udev (il componente che crea i device su filesystem)
in questo modo come spiegato nei link che ti abbiamo postato riesci ad eseguire dei comandi specifici per ogni tipo di device che viene creato.. percio' se per esempio fai una regola specifica per i device usb (nn mi dilungo su come fare perchè dai link, ma pure qui' su slacky ne abbiamo parlato piu' volte) riesci ad ottenere che quando il kernel aggiunge un device usb.. è direttamente udev che te lo monta correttamente
- hal è stato deprecato (non ancora su slackware) in favore di un nuovo tool piu' ad-hoc chiamato udisk che ti consente di fare sostanzialmente le stesse cose che faceva hal, solo che è specifico per i dispositivi di memorizzazione (pennine/harddisk/memorie ssd etc etc etc). oltre al graduale passaggio a questo sistema da parte della stragrande maggioranza dei desktop environment(KDE in primis) esistono degli script bash tipo
questo che sono dei wrapper per udisk e che in automatico ti gestiscono il montaggio dei device non appena li inserisci.
c'e' da dire che personalmente ho mollato l'approccio automount, e ho ripreso a montarmi/smontarmi i device 'manualmente' (sono un minimalista che lavora con openbox quindi pochi fronzoli) perchè è tutto figo e tutto funziona in fase di montaggio.. ma in fase di smontaggio c'e' un piccolo problema... udev/hal/udisk sono in grado di rilevare eventi di rimozione del device.. cioe' quando realmente prendi un device rimovibile e lo stacchi... quindi se per esempio stai copiano un file di grosse dimensioni e non è stato del tutto scritto sul device, se lavori con questo sistema e quindi senza le funzionalita' simil "rimozione sicura di windows" che ti danno gli ambienti grafici, ti puoi trovare in situazioni di file corrotti.
spero di essere stato chiaro:D