Поиск по сайту:

Как файловый менеджер монтирует внешний диск без Sudo?

Вы когда-нибудь задумывались, почему sudo или root требуется для монтирования внешнего диска или раздела от имени обычного пользователя из Терминала, а не из файловый менеджер в Linux? Как вы уже знаете, вам необходимо быть пользователем sudo, чтобы отображать, монтировать и получать доступ к съемным носителям (например, внешним жестким дискам, USB-накопителям, оптическим дискам и цифровым камерам) из командной строки. Но как графический файловый менеджер (например, Nautilus) может смонтировать эти съемные устройства хранения без root или sudo? В этом кратком руководстве я объясню, как файловый менеджер монтирует внешние диски без разрешения sudo или root в Linux.

Как файловый менеджер может подключить внешний диск без разрешения sudo или root в Linux?

Файловые менеджеры используют UDisks2 для подключения внешних дисков без прав администратора. UDisks2 — это вторая версия UDisks. UDisks устарел.

GNOME, KDE и различные другие среды рабочего стола используют UDisks2, чтобы позволить обычным пользователям монтировать съемные носители.

Проект UDisks2 предоставляет системный демон udisksd и инструмент командной строки udisksctl.

Демон udiskd работает в фоновом режиме и реализует четко определенные интерфейсы D-Bus, которые можно использовать для запроса устройств хранения данных и управления ими. udiskd запускается автоматически при загрузке системы и постоянно работает от имени root. Вы можете проверить это с помощью команды:

sudo systemctl status udisks2

Пример вывода:

● udisks2.service - Disk Manager
     Loaded: loaded (/lib/systemd/system/udisks2.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2020-09-09 12:09:21 IST; 3h 9min ago
       Docs: man:udisks(8)
   Main PID: 978 (udisksd)
      Tasks: 5 (limit: 9336)
     Memory: 9.3M
     CGroup: /system.slice/udisks2.service
             └─978 /usr/lib/udisks2/udisksd

Sep 09 12:08:51 ostechnix systemd[1]: Starting Disk Manager...
Sep 09 12:09:00 ostechnix udisksd[978]: udisks daemon version 2.8.4 starting
Sep 09 12:09:21 ostechnix udisksd[978]: Acquired the name org.freedesktop.UDisks2 on the sy>
Sep 09 12:09:21 ostechnix systemd[1]: Started Disk Manager.

Утилита CLI udisksctl используется для запроса и использования демона. Действия, которые пользователь может выполнять с помощью udisks, ограничиваются с помощью Polkit. Polkit — это набор инструментов прикладного уровня для определения и обработки авторизаций. Это позволяет непривилегированным процессам общаться с привилегированными процессами.

Поскольку UDisks уже запущен с правами root, он позволяет непривилегированным программам (например, файловым менеджерам) монтировать и отключать устройства хранения без разрешения sudo или root. Вот как файловые менеджеры монтируют внешний диск без прав администратора.

Вы можете проверить это самостоятельно, подключив USB-накопитель от имени обычного пользователя с помощью команды udisksctl, как показано ниже:

udisksctl mount -b /dev/sdc1

Или,

udisksctl mount --block-device /dev/sdc1

Замените /dev/sdc1 именем вашего устройства.

Пример вывода:

Mounted /dev/sdc1 at /media/sk/ventoy.

Аналогичным образом вы можете отключить USB-накопитель с помощью команды:

udisksctl unmount -b /dev/sdc1

Или,

udisksctl unmount --block-device /dev/sdc1

Пример вывода:

Unmounted /dev/sdc1.

Подключайте и отключайте внешние диски без разрешения sudo с помощью команды udisksctl.

Если вы когда-нибудь ищете способ безопасно разрешить обычным пользователям монтировать файловые системы без привилегий суперпользователя в Linux, рекомендуется использовать Udisk2!

Связанное чтение:

  • Как найти тип смонтированной файловой системы в Linux

Я не знал, что монтирование и размонтирование дисков без разрешения sudo возможно, пока не наткнулся на этот вопрос на Reddit.

Надеюсь это поможет.

Ресурсы:

  • Сайт UDisks
  • Репозиторий UDisks на GitHub
  • Репозиторий Polkit GitLab

Избранное изображение Джессики Льюис из Pexels.

Статьи по данной тематике