mercoledì 18 settembre 2019

Chiavette USB, dischi esterni e CD/DVD in OpenBSD


Se in Linux con qualsiasi DE siamo abituati a inserire CD/DVD e chiavette USB varie ed avere al volo accesso al loro contenuto attraverso il file manager in OpenBSD la cosa non e' altrettanto immediata e richiede una certa dose di lavoro.
Sul sito bsdua.org ho trovato due piccole utility che sono gia' presenti nei package binary di OpenBSD, a riprova dell'ottimo lavoro fatto dal loro autore. 

Ma per prima cosa abilitiamo il servizio hotplug :
rcctl enable hotplug
poi ho installato il pacchetto hotplug-diskmount ed eseguito il programma di inizializzazione :
/usr/local/libexec/hotplug-diskmount init
poi ho creato il file /etc/hotplug/attach con questo contenuto :
    #!/bin/sh

    DEVCLASS=$1
    DEVNAME=$2

    case $DEVCLASS in
    2)
/usr/local/libexec/hotplug-diskmount attach -u utente -f dirty "$DEVNAME"
     LABEL=`disklabel $DEVNAME|grep label|awk -F ": " '{print $2}'`
     env DISPLAY=:0.0 notify-send "hotplug-diskmount" "/vol/$LABEL mounted"
     ;;
    esac
al posto di "utente" dovrete indicare il vs. utente, non sono riuscito a fargli accettare $USER, o meglio lo accetta ma come root.
Poi visto che hotplug-diskmount non comunica nulla ho usato notify-send per avere un popup della cartella appena montata.

Ora riavvio il servizio :
/etc/rc.d/hotplugd restart
a questo punto se inserisco una chiavetta USB vedrò la notifica del punto di montaggio sotto il quale avrò accesso ai file in essa contenuti.
OK ma poi per rimuovere la chiavetta ? E qui viene in aiuto la seconda utility, o meglio sono tre utility nel pacchetto tray-app ma quella che ci interessa è una sola, ovvero il programma eject.
Anche qui c'è un pò di lavoro da fare in quanto per smontare il device servono i permessi di root, quindi ho aggiunto al file /etc/doas.conf una seconda regola :
permit nopass setenv { DISPLAY=:0.0 } utente as root cmd /usr/local/libexec/tray-app/eject
questa mi permette di lanciare il programma eject come root e senza password, con l'opzione setenv { DISPLAY=:0.0 }  gli dico che nonostante sia eseguito come root deve "lavorare" sul display della sessione utente, così da avere l'icona nella tray icon di Mate, altrimenti niente icona e quindi il programma è inutilizzabile.
Per ultimo bisogna far si che il programma eject venga lanciato ad ogni avvio di Mate in modo che ci sia questa icona per la rimozione sicura, questa è la parte facile perchè basta andare in Sistema, Preferenze, Personale, Applicazioni d'avvio e creare un nuovo lanciatore che esegua questo comando:
doas /usr/local/libexec/tray-app/eject &
a questo punto quando inserisco una chiavetta ho la notifica del nuovo punto di montaggio e con l'icona posso fare comodamente la rimozione. 
Purtroppo per quanto riguarda i CD/DVD hotplug non li gestisce e quindi vanno montati manualmente da terminale.
Ho notato anche che i dischi formattati in NTFS vengono montati ma non elencati nell'applicazione eject e quindi vanno smontati manualmente.
Quindi da questo punto di vista le limitazioni rispetto a linux sono piuttosto evidenti anche se ci si aspetta che se uno si avvicina a OpenBSD abbia comunque una certa famigliarità con i comandi unix da terminale e pertanto non è un problema così importante.

Nessun commento:

Posta un commento