防止非 root 用户格式化分区

Dha*_*mit 4 linux fedora partition polkit

几天前,我通过单击“计算机”的上下文菜单中的“格式化”错误地格式化了外部硬盘驱动器上的分区。我想知道如何防止非 root 用户这样做。同时我需要非root用户能够在分区上读写。

我使用 Fedora 14。

谢谢。

wag*_*wag 5

正如nc3b已经指出的,这由 PolicyKit 控制。磁盘策略位于:/usr/share/polkit-1/actions/org.freedesktop.udisks.policy并且可以调整。
用 root 权限打开它并搜索行:<action id="org.freedesktop.udisks.change">,或者注释掉整个块:<!-- [udisks.change-block] -->,或者设置<allow_active>为“否”,保存并退出。

检查它是否被禁用:

$ pkaction --verbose --action-id org.freedesktop.udisks.change
No action with action id org.freedesktop.udisks.change
Run Code Online (Sandbox Code Playgroud)

或者,如果您已设置no

...
implicit active:   no
Run Code Online (Sandbox Code Playgroud)

好的,下次您尝试将设备格式化为非 root 用户时,无论是通过上下文菜单还是通过“磁盘工具”,都会出现一条错误消息并禁止它。此步骤仍将允许非 root 用户读/写设备。


如果您仍然希望允许格式化设备,但具有更高的安全级别,您可以强制 PolicyKit 每次都要求输入密码。
打开相同的文件并转到相同的部分,将 'yes' 替换为 'auth_admin' allow_active

<allow_active>auth_admin</allow_active>
Run Code Online (Sandbox Code Playgroud)

查看:

$ pkaction --verbose --action-id org.freedesktop.udisks.change
...
implicit active:   auth_admin
Run Code Online (Sandbox Code Playgroud)

优秀!

注意:我只在 Ubuntu 上测试过,但 Fedora 也使用 PolicyKit,所以先用虚拟驱动器试试。