it-swarm.it

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

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ì.

22
vanden

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 lo sovrascriva in /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 demone, 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 udisks che 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.

39
Marius Gedminas

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.

9
Marcel Stimberg

Le risposte correnti sono obsolete. Provare:

gio mount --unmount *mounted location*

ottenere le partizioni montate correnti con ad esempio:

lsblk | grep media
1
Pablo Bianchi