Dlaczego potrzebuję uprawnień roota, aby umountować dysk w linii poleceń, ale nie w Nautilusie? Jak to zmienić?

24

Kiedy wkładam pendrive, kartę multimedialną lub dysk twardy USB, aby odmontować go za pomocą wiersza poleceń, muszę użyć:

sudo umount /media/the_device

Ale mogę odmontować urządzenie w menedżerze plików, takim jak Nautilus, po prostu klikając przycisk wysuwania lub używając menu kontekstowego prawym przyciskiem myszy na urządzeniu.

Jakie jest uzasadnienie tej różnicy? Jak mogę to zmienić, aby móc odmontować z wiersza poleceń bez konieczności posiadania uprawnień roota? Czy zmiana to zły pomysł?

Edycja: W przypadku zmiany, używam 9.04. Uruchomiłem większość wersji 5.10--9.04 i, o ile pamiętam, zawsze tak było.

Vanden
źródło
2
Huh, nie myślałem o tym. To dziwne, prawda?
DLH
Tak, a potem są tajemnicze wierzchowce. Od dłuższego czasu próbuję dowiedzieć się, jak nautilus lokalizuje i montuje lokalną sieć Windows, na której działają komputery w domu. Mogę dostać się do udostępnionych folderów w dowolnym miejscu za pomocą nautilusa, ale byłoby naprawdę fajnie wiedzieć, jak się tam dostać z terminala.
Campadrenalin
Dostęp do wszystkich dysków sieciowych w Nautilusie można uzyskać pod ~ / .gvfs. Również polecamnautilus-open-terminal wtyczkę.
Marius Gedminas

Odpowiedzi:

40

Nautilus nie odłącza urządzenia bezpośrednio; rozmawia przez DBus z demonem systemowym (udisks-daemon) i prosi go o odmontowanie.

Demon sprawdza, czy możesz to zrobić, kontaktując się z innym demonem systemowym, PolicyKit.

PolicyKit używa konfiguracji zdefiniowanej w /usr/share/polkit-1/actions/org.freedesktop.udisks.policy(chyba że administrator systemu lokalnego zastąpi ją /etc/polkit-1). Ten plik informuje PolicyKit, że użytkownicy z aktywnymi sesjami konsoli mogą odłączyć dyski, więc PolicyKit rozmawia z trzecim demonem, ConsoleKit, aby sprawdzić, czy masz aktywne sesje konsoli. Logowanie przez gdm liczy się jako sesja konsoli; logowanie przez ssh nie.

Istnieje narzędzie wiersza polecenia, udisksktóre pozwala odmontowywać urządzenia bez użycia sudo, przy użyciu tego samego mechanizmu:

udisks --unmount /dev/sdb1

to odmontowuje system plików; Mogę też odłączyć całe urządzenie za pomocą

udisks --detach /dev/sdb

co powoduje, że dioda LED na moim kluczu USB gaśnie.

Marius Gedminas
źródło
3
Chcę ci bardzo podziękować za sprowokowanie mnie do przeprowadzenia tych badań. Chciałem narzędzia wiersza polecenia do odmontowywania urządzeń bez długiego korzystania z sudo.
Marius Gedminas
1
Um, witam cię za sprowokowanie cię do udzielenia naprawdę dobrej odpowiedzi na moje pytanie. :-)
vanden
1
Prawa do tego nie są już obecne (od Ubuntu 12.10) - jednak odpowiedź poniżej z gvfs-mountteraz działa
David Fraser
9

Sytuacja mogła się zmienić - w obecnej wersji Ubuntu 10.04 umount działa bez sudo dla napędów USB. Ogólnie myślę, że to polecenie

gvfs-mount -u /media/the_device

(gvfs-mount znajduje się w pakiecie gvfs-bin) powinien zawsze działać.

Marcel Stimberg
źródło
2

Aktualne odpowiedzi są przestarzałe. Próbować:

gio mount --unmount *mounted location*

pobierz bieżące zamontowane partycje, na przykład:

lsblk | grep media
Pablo A.
źródło