Как файловый менеджер монтирует внешний диск без 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.