你有没有想过为什么 sudo 或者 根 以普通用户身份从终端挂载外部驱动器或分区需要权限,而不是从 Linux 中的文件管理器挂载? 如您所知,您需要成为 sudo 用户从命令行显示、安装和访问可移动媒体(例如外部硬盘驱动器、USB 记忆棒、光盘和数码相机)。 但是,图形文件管理器(例如 Nautilus)如何在没有 root 或 sudo? 在这个简短的指南中,我将解释文件管理器如何在没有 sudo
或者 root
Linux 中的权限。
文件管理器如何在没有的情况下挂载外部驱动器 sudo 或 Linux 中的 root 权限?
文件管理器使用 U盘2 无需安装外部驱动器 admin 权利。 UDisks2 是 UDisks 的第二个版本。 UDisks 现在已经过时了。 现在,GNOME、KDE 和其他各种桌面环境都使用 UDisks2 来允许普通用户挂载可移动媒体设备。
UDisks2 项目提供了一个名为的系统守护进程 udisksd
,以及一个名为的命令行工具 udisksctl
.
这 udiskd
守护进程在后台运行并实现了定义良好的 总线 可用于查询和操作存储设备的接口。 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.
这 udisksctl
CLI 实用程序用于查询和使用守护程序。 用户可以使用 udisks 执行的操作受到限制 波尔基特. 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.
如果您正在寻找一种方法来安全地允许普通用户在 Linux 中没有超级用户权限的情况下挂载文件系统,建议使用 Udisk2!
相关阅读:
- 如何在 Linux 中查找挂载的文件系统类型
我不知道安装和卸载驱动器 sudo 在我在 Reddit 上遇到这个问题之前,我可能会获得许可。
希望你今天学到了一些有用的东西。
精选图片 杰西卡·刘易斯 从 像素.
资源:
- 优盘网站
- UDisks GitHub 存储库
- Polkit GitLab 存储库
LinuxLinux 命令Linux 常见问题Linux 操作指南Linux 提示安装驱动器PolkitUDisks2