Ti sei mai chiesto perché sudo o root l'autorizzazione è necessaria montare un'unità esterna o una partizione come un normale utente da Terminale, ma non dal file manager in Linux? Come già sai, devi essere un utente sudo per visualizzare, montare e accedere a supporti rimovibili (ad esempio unità disco rigido esterne, chiavette USB, dischi ottici e fotocamere digitali) dalla riga di comando. Ma come può un file manager grafico (es. Nautilus) montare questi dispositivi di archiviazione rimovibili senza root o sudo? In questa breve guida, spiegherò come fa un file manager a montare unità esterne senza sudo
o root
autorizzazione in Linux.
Come può un file manager montare un'unità esterna senza sudo o autorizzazione di root in Linux?
I file manager utilizzano UDisks2 per montare le unità esterne senza diritti di amministratore. UDisks2 è la seconda versione di UDisks. UDisks è ora obsoleto. Ora, GNOME, KDE e vari altri ambienti desktop utilizzano UDisks2 per consentire agli utenti normali di montare dispositivi multimediali rimovibili.
Il progetto UDisks2 fornisce un demone di sistema chiamato udisksd
e uno strumento da riga di comando chiamato udisksctl
.
Il udiskd
daemon viene eseguito in background e implementa un ben definito D-Bus interfacce che possono essere utilizzate per interrogare e manipolare i dispositivi di archiviazione. udiskd
si avvia automaticamente all'avvio del sistema e viene eseguito come root
tutto il tempo. Puoi verificarlo usando il comando:
$ sudo systemctl status udisks2
Risultato di esempio:
● udisks2.service - Disk Manager Loaded: loaded (/lib/systemd/system/udisks2.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2020-09-09 12:09:21 IST; 3h 9min ago Docs: man:udisks(8) Main PID: 978 (udisksd) Tasks: 5 (limit: 9336) Memory: 9.3M CGroup: /system.slice/udisks2.service └─978 /usr/lib/udisks2/udisksd Sep 09 12:08:51 ostechnix systemd[1]: Starting Disk Manager... Sep 09 12:09:00 ostechnix udisksd[978]: udisks daemon version 2.8.4 starting Sep 09 12:09:21 ostechnix udisksd[978]: Acquired the name org.freedesktop.UDisks2 on the sy> Sep 09 12:09:21 ostechnix systemd[1]: Started Disk Manager.
Il udisksctl
L'utilità CLI viene utilizzata per interrogare e utilizzare il demone. Le azioni che un utente può eseguire utilizzando gli udisk sono limitate utilizzando Polkit . Polkit è un toolkit a livello di applicazione per la definizione e la gestione delle autorizzazioni. Consente ai processi senza privilegi di parlare con i processi privilegiati.
Poiché UDisks è già in esecuzione come root, consente ai programmi non privilegiati (ad es. File manager) di montare o smontare i dispositivi di archiviazione senza sudo o autorizzazione di root. Ecco come i file manager montano un'unità esterna senza diritti amministrativi.
Puoi testarlo tu stesso montando un'unità USB come utente normale usando udisksctl
comando come di seguito:
$ udisksctl mount -b /dev/sdc1
Oppure,
$ udisksctl mount --block-device /dev/sdc1
Sostituisci /dev/sdc1
con il nome del tuo dispositivo.
Risultato di esempio:
Mounted /dev/sdc1 at /media/sk/ventoy.
Allo stesso modo, puoi smontare l'unità USB usando il comando:
$ udisksctl unmount -b /dev/sdc1
Oppure,
$ udisksctl unmount --block-device /dev/sdc1
Risultato di esempio:
Unmounted /dev/sdc1.

Se stai cercando un modo per consentire in modo sicuro agli utenti regolari di montare i filesystem senza privilegi di super utente in Linux, Udisk2 è consigliato!
Lettura correlata:
- Come trovare il tipo di filesystem montato in Linux
Non sapevo che il montaggio e lo smontaggio di unità senza autorizzazione sudo fosse possibile fino a quando non mi sono imbattuto in questa domanda su Reddit.
Spero che tu abbia imparato qualcosa di utile oggi.
Immagine in primo piano di Jessica Lewis da Pexel .