Přemýšleli jste někdy, proč sudo nebo root povolení je vyžadováno připojit externí disk nebo oddíl jako normální uživatel z Terminálu, ale ne ze správce souborů v Linuxu? Jak již víte, musíte být uživatelem sudo, abyste mohli zobrazovat, připojovat a přistupovat k vyměnitelným médiím (např. externí pevné disky, USB klíče, optické disky a digitální fotoaparáty) z příkazového řádku. Ale jak může grafický správce souborů (např. Nautilus) připojit tato vyměnitelná úložná zařízení bez root nebo sudo? V tomto stručném návodu vysvětlím, jak správce souborů připojuje externí disky bez sudo
nebo root
oprávnění v Linuxu.
Jak může správce souborů připojit externí disk bez oprávnění sudo nebo root v Linuxu?
Správci souborů používají UDisks2 připojit externí disky bez práv správce. UDisks2 je 2. verze UDisks. UDisks je nyní zastaralý. Nyní GNOME, KDE a různá další desktopová prostředí používají UDisks2, aby běžným uživatelům umožnila připojit vyměnitelná média.
Projekt UDisks2 poskytuje systémového démona s názvem udisksd
a nástroj příkazového řádku s názvem udisksctl
.
udiskd
démon běží na pozadí a implementuje dobře definovaný D-Bus rozhraní, která lze použít k dotazování a manipulaci s úložnými zařízeními. udiskd
spouští se automaticky při startu systému a běží jako root
po celou dobu. Můžete to ověřit pomocí příkazu:
$ sudo systemctl status udisks2
Ukázkový výstup:
● 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.
udisksctl
Obslužný program CLI se používá k dotazování a použití démona. Akce, které může uživatel provádět pomocí udisků, jsou omezeny pomocí Polkitu . Polkit je sada nástrojů na aplikační úrovni pro definování a zpracování oprávnění. Umožňuje neprivilegovaným procesům mluvit s privilegovanými procesy.
Protože UDisks již běží jako root, umožňuje neprivilegovaným programům (např. správcům souborů) připojovat nebo odpojovat úložná zařízení bez oprávnění sudo nebo root. Takto správci souborů připojí externí disk bez administrátorských práv.
Můžete si to sami vyzkoušet připojením USB disku jako běžný uživatel pomocí udisksctl
příkaz jako níže:
$ udisksctl mount -b /dev/sdc1
Nebo,
$ udisksctl mount --block-device /dev/sdc1
Nahraďte /dev/sdc1
s názvem vašeho zařízení.
Ukázkový výstup:
Mounted /dev/sdc1 at /media/sk/ventoy.
Podobně můžete USB disk odpojit pomocí příkazu:
$ udisksctl unmount -b /dev/sdc1
Nebo,
$ udisksctl unmount --block-device /dev/sdc1
Ukázkový výstup:
Unmounted /dev/sdc1.

Pokud jste někdy hledali způsob, jak bezpečně umožnit běžným uživatelům připojovat souborové systémy bez oprávnění superuživatele v Linuxu, doporučujeme Udisk2!
Související čtení:
- Jak najít typ připojeného souborového systému v Linuxu
Nevěděl jsem, že připojování a odpojování jednotek bez povolení sudo je možné, dokud jsem nenarazil na tuto otázku na Redditu.
Doufám, že jste se dnes naučili něco užitečného.
Doporučený obrázek Jessica Lewis od Pexels .