Pourquoi ai-je besoin des privilèges root pour démonter un lecteur sur la ligne de commande, mais pas dans Nautilus? Comment changer ça?

24

Lorsque j'insère une clé USB, une carte multimédia ou un disque dur USB, pour le démonter via la ligne de commande, je dois utiliser:

sudo umount /media/the_device

Mais, je peux démonter l'appareil dans un gestionnaire de fichiers comme Nautilus simplement en cliquant sur le bouton d'éjection ou en utilisant le menu contextuel du clic droit sur l'appareil.

Quelle est la justification de la différence? Comment puis-je le changer pour pouvoir démonter la ligne de commande sans avoir besoin des privilèges root? Le changer est-il une mauvaise idée?

Edit: Au cas où il a changé, je lance 9.04. J'ai exécuté la plupart des versions 5.10--9.04, et pour autant que je m'en souvienne, il en a toujours été ainsi.

vanden
la source
2
Huh, je n'avais pas pensé à ça. C'est étrange non?
DLH
Ouais, et puis il y a les montures mystérieuses. J'essaie depuis longtemps de comprendre comment nautilus localise et monte le réseau Windows local sur lequel les ordinateurs de la maison fonctionnent. Je peux accéder aux dossiers partagés de n'importe où via nautilus, mais ce serait vraiment chouette de savoir comment s'y rendre depuis un terminal.
Campadrenalin
Tous les lecteurs réseau de Nautilus sont accessibles sous ~ / .gvfs. Aussi, je recommande le nautilus-open-terminalplugin.
Marius Gedminas

Réponses:

40

Nautilus ne démonte pas directement l'appareil; il parle de DBus à un démon système (udisks-daemon) et lui demande de démonter.

Le démon vérifie si vous êtes autorisé à le faire, en contactant un autre démon système, PolicyKit.

PolicyKit utilise la configuration définie dans /usr/share/polkit-1/actions/org.freedesktop.udisks.policy(sauf si l'administrateur système local la remplace /etc/polkit-1). Ce fichier indique à PolicyKit que les utilisateurs avec des sessions de console actives peuvent détacher des lecteurs, donc PolicyKit parle à un troisième démon, ConsoleKit, pour voir si vous avez des sessions de console actives. La connexion via gdm compte comme une session de console; la connexion via ssh ne fonctionne pas.

Il existe un outil en ligne de commande udisksqui vous permet de démonter des appareils sans utiliser sudo, en utilisant le même mécanisme:

udisks --unmount /dev/sdb1

qui démonte le système de fichiers; Je peux également retirer l'ensemble de l'appareil avec

udisks --detach /dev/sdb

ce qui éteint la LED de ma clé USB.

Marius Gedminas
la source
3
Je tiens à vous remercier beaucoup de m'avoir incité à faire cette recherche. Je voulais un outil en ligne de commande pour démonter les périphériques sans utiliser sudo pendant longtemps.
Marius Gedminas
1
Votre accueil pour ma provocation à donner une très bonne réponse à ma question. :-)
vanden
1
Les droits pour ce faire ne sont plus présents (à partir d'Ubuntu 12.10) - cependant la réponse ci-dessous gvfs-mountfonctionne maintenant
David Fraser
9

La situation pourrait avoir changé - dans Ubuntu 10.04 actuel, umount fonctionne sans sudo pour les clés USB. En général, je pense que la commande

gvfs-mount -u /media/the_device

(gvfs-mount est dans le paquet gvfs-bin) devrait toujours fonctionner.

Marcel Stimberg
la source
2

Les réponses actuelles sont obsolètes. Essayer:

gio mount --unmount *mounted location*

obtenir les partitions montées actuelles avec par exemple:

lsblk | grep media
Pablo A
la source