Warum benötige ich Root-Rechte, um ein Laufwerk in der Befehlszeile, aber nicht in Nautilus, bereitzustellen? Wie kann man das ändern?

24

Wenn ich ein USB-Stick, eine Medienkarte oder ein USB-Festplattenlaufwerk einsetze, um es über die Befehlszeile zu deaktivieren, muss ich Folgendes verwenden:

sudo umount /media/the_device

Ich kann das Gerät jedoch in einem Dateimanager wie Nautilus einfach durch Klicken auf die Auswurftaste oder über das Kontextmenü mit der rechten Maustaste vom Gerät trennen.

Was ist der Grund für den Unterschied? Wie kann ich es ändern, damit ich die Bereitstellung über die Befehlszeile aufheben kann, ohne Root-Berechtigungen zu benötigen? Ist es eine schlechte Idee, es zu ändern?

Edit: Falls es sich geändert hat, starte ich 9.04. Ich habe die meisten Versionen 5.10 - 9.04 ausgeführt, und soweit ich mich erinnere, war es immer so.

vanden
quelle
2
Huh, daran hatte ich nicht gedacht. Das ist seltsam, nicht wahr?
DLH,
Ja, und dann sind da noch die mysteriösen Reittiere. Ich habe lange versucht herauszufinden, wie Nautilus das lokale Windows-Netzwerk findet und einbindet, auf dem die Computer im Haus laufen. Ich kann mit nautilus zu den freigegebenen Ordnern von überall aus gelangen, aber es wäre wirklich raffiniert zu wissen, wie man von einem Terminal dorthin kommt.
Campadrenalin
Auf alle Netzwerklaufwerke in Nautilus kann unter ~ / .gvfs zugegriffen werden. Auch das nautilus-open-terminalPlugin empfehle ich .
Marius Gedminas

Antworten:

40

Nautilus hebt das Gerät nicht direkt ab. Es kommuniziert über DBus mit einem System-Daemon (udisks-daemon) und fordert ihn auf, die Bereitstellung aufzuheben.

Der Dämon prüft, ob Sie dazu berechtigt sind, indem Sie sich an einen anderen Systemdämon, PolicyKit, wenden.

PolicyKit verwendet die in definierte Konfiguration /usr/share/polkit-1/actions/org.freedesktop.udisks.policy(es sei denn, der lokale Systemadministrator überschreibt sie in /etc/polkit-1). Diese Datei teilt PolicyKit mit, dass Benutzer mit aktiven Konsolensitzungen Laufwerke trennen können, sodass PolicyKit mit einem dritten Dämon, ConsoleKit, spricht, um festzustellen, ob Sie aktive Konsolensitzungen haben. Die Anmeldung über gdm zählt als Konsolensitzung. Anmeldung über SSH nicht.

Es gibt ein Befehlszeilentool udisks, mit dem Sie die Bereitstellung von Geräten aufheben können, ohne sudo zu verwenden. Dabei wird der gleiche Mechanismus angewendet:

udisks --unmount /dev/sdb1

das hebt das Dateisystem auf; Ich kann auch das ganze gerät mit detatchen

udisks --detach /dev/sdb

Dadurch wird die LED auf meinem USB-Stick dunkel.

Marius Gedminas
quelle
3
Ich danke Ihnen vielmals dafür, dass Sie mich zu dieser Recherche herausgefordert haben. Ich wollte ein Befehlszeilentool, um Geräte für eine lange Zeit ohne sudo zu trennen.
Marius Gedminas
1
Ähm, ich begrüße Sie, dass ich Sie dazu provoziert habe, eine wirklich gute Antwort auf meine Frage zu geben. :-)
vanden
1
Die Rechte dazu sind nicht mehr vorhanden (ab Ubuntu 12.10) - die unten stehende Antwort gvfs-mountfunktioniert jedoch jetzt
David Fraser
9

Die Situation könnte sich geändert haben - im aktuellen Ubuntu 10.04 funktioniert umount ohne sudo für USB-Laufwerke. Generell denke ich, dass der Befehl

gvfs-mount -u /media/the_device

(gvfs-mount ist im Paket gvfs-bin enthalten) sollte immer funktionieren.

Marcel Stimberg
quelle
2

Aktuelle Antworten sind veraltet. Versuchen:

gio mount --unmount *mounted location*

Holen Sie sich die aktuell gemounteten Partitionen mit zum Beispiel:

lsblk | grep media
Pablo A
quelle