Perché ho bisogno dei privilegi di root per smontare un'unità dalla riga di comando, ma non in Nautilus? Come cambiarlo?


24

Quando inserisco una chiavetta USB, una scheda di memoria o un disco rigido USB, per smontarla tramite la riga di comando, devo usare:

sudo umount /media/the_device

Tuttavia, posso smontare il dispositivo in un file manager come Nautilus semplicemente facendo clic sul pulsante di espulsione o usando il menu contestuale del tasto destro del mouse sul dispositivo.

Qual è la logica della differenza? Come posso cambiarlo in modo da poter smontare dalla riga di comando senza bisogno dei privilegi di root? Cambiarlo è una cattiva idea?

Modifica: se è cambiato, sto eseguendo 9.04. Ho eseguito la maggior parte delle versioni 5.10--9.04 e, per quanto ricordo, è sempre stato così.


2
Eh, non ci avevo pensato. È strano, vero?
DLH,

Sì, e poi c'è il mistero. Ho cercato a lungo di capire come nautilus individua e monta la rete Windows locale su cui girano i computer della casa. Posso accedere alle cartelle condivise ovunque tramite nautilus, ma sarebbe davvero utile sapere come arrivarci da un terminale.
Campadrenalin,

È possibile accedere a qualsiasi unità di rete in Nautilus in ~ / .gvfs. Inoltre, raccomando il nautilus-open-terminalplugin.
Marius Gedminas,

Risposte:


40

Nautilus non smonta direttamente il dispositivo; parla su DBus con un demone di sistema (udisks-daemon) e gli chiede di smontare.

Il demone controlla se ti è permesso farlo, contattando un altro demone di sistema, PolicyKit.

PolicyKit utilizza la configurazione definita in /usr/share/polkit-1/actions/org.freedesktop.udisks.policy(a meno che l'amministratore di sistema locale non lo ignori /etc/polkit-1). Quel file dice a PolicyKit che gli utenti con sessioni di console attive possono bloccare unità, quindi PolicyKit parla con un terzo daemon, ConsoleKit, per vedere se hai sessioni di console attive. L'accesso tramite gdm conta come una sessione della console; l'accesso tramite ssh no.

C'è uno strumento da riga di comando udisksche ti consente di smontare i dispositivi senza usare sudo, usando lo stesso meccanismo:

udisks --unmount /dev/sdb1

che smonta il filesystem; Posso anche bloccare l'intero dispositivo con

udisks --detach /dev/sdb

che rende il LED sulla mia chiave USB scuro.


3
Voglio ringraziarvi molto per avermi provocato nel fare questa ricerca. Volevo uno strumento da riga di comando per smontare i dispositivi senza usare sudo per molto tempo.
Marius Gedminas,

1
Uhm, sei il benvenuto per averti provocato nel dare una risposta davvero buona alla mia domanda. :-)
vanden,

1
I diritti per farlo non sono più presenti (a partire da Ubuntu 12.10) - tuttavia la risposta di seguito con gvfs-mountora funziona
David Fraser

9

La situazione potrebbe essere cambiata: nell'attuale Ubuntu 10.04 umount funziona senza sudo per le unità USB. Generalmente penso che il comando

gvfs-mount -u /media/the_device

(gvfs-mount è nel pacchetto gvfs-bin) dovrebbe sempre funzionare.


2

Le risposte correnti sono obsolete. Provare:

gio mount --unmount *mounted location*

ottenere le partizioni montate correnti con ad esempio:

lsblk | grep media
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.