Навіщо мені потрібні кореневі привілеї, щоб перерахувати диск в командному рядку, але не в Nautilus? Як це змінити?


24

Коли я вставляю палець, медіа-карту або жорсткий диск USB, щоб відключити його за допомогою командного рядка, мені потрібно використовувати:

sudo umount /media/the_device

Але я можу відключити пристрій у файловому менеджері, як Nautilus, просто натиснувши кнопку витягування або скориставшись контекстним меню правою кнопкою миші на пристрої.

Яке обґрунтування різниці? Як я можу це змінити, щоб я міг відключитися від командного рядка, не потребуючи привілеїв root? Це зміна погана ідея?

Редагувати: У випадку, якщо він змінився, я біжу 9.04. Я працював у більшості версій 5.10--9.04, і, наскільки я пам’ятаю, це було завжди таким чином.


2
Так, я не думав про це. Це дивно, чи не так?
DLH

Так, і тут є таємниця. Я давно намагаюся з’ясувати, як nautilus знаходить і монтує локальну мережу Windows, на якій працюють комп'ютери в будинку. Я можу дістатися до спільних папок у будь-якому місці через nautilus, але було б дуже чудово знати, як дістатися з терміналу.
Campadrenalin

До будь-яких мережевих накопичувачів у Nautilus можна отримати доступ під ~ / .gvfs. Також рекомендую nautilus-open-terminalплагін.
Маріус Гедмінас

Відповіді:


40

Nautilus не відключає пристрій безпосередньо; він спілкується через DBus до системного демона (udisks-demon) і просить його відключити.

Демон перевіряє, чи вам це дозволено, звернувшись до іншого системного демона, PolicyKit.

PolicyKit використовує конфігурацію, визначену в /usr/share/polkit-1/actions/org.freedesktop.udisks.policy(якщо місцевий системний адміністратор не перекриває її в /etc/polkit-1). Цей файл повідомляє PolicyKit, що користувачі, які мають активні сеанси консолі, можуть від'єднувати диски, тому PolicyKit розмовляє з третім демоном, ConsoleKit, щоб побачити, чи є у вас активні сеанси консолі. Вхід через gdm вважається консольним сеансом; вхід через ssh не означає.

Існує інструмент командного рядка, udisksякий дозволяє демонтувати пристрої без використання sudo, використовуючи той самий механізм:

udisks --unmount /dev/sdb1

що відключає файлову систему; Я також можу від'єднати весь пристрій за допомогою

udisks --detach /dev/sdb

завдяки чому світлодіод на моєму USB-ключі стає темним.


3
Хочу подякувати вам за те, що ви спровокували мене на це дослідження. Я хотів, щоб інструмент командного рядка демонтував пристрої, не використовуючи sudo протягом тривалого часу.
Маріус Гедмінас

1
Гм, ласкаво просимо вас за те, що я спровокував вас на те, щоб дати дійсно гарну відповідь на моє запитання. :-)
vanden

1
Прав на це більше немає (станом на Ubuntu 12.10) - однак відповідь нижче gvfs-mountзараз працює
Девід Фрейзер

9

Ситуація могла змінитися - в нинішньому Ubuntu 10.04 umount працює без судо для USB-накопичувачів. Взагалі я вважаю, що команда

gvfs-mount -u /media/the_device

(gvfs-mount є в пакеті gvfs-bin) завжди повинен працювати.


2

Поточні відповіді застарілі. Спробуйте:

gio mount --unmount *mounted location*

отримати поточні змонтовані розділи, наприклад:

lsblk | grep media
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.