我想授予非管理员用户通过 nautilus 挂载驱动器的挂载权限。我不希望他们授予其他管理员权限。我也不想使用 setuid 方法。
我该如何实现这一点?我正在使用 Ubuntu 12.04。
答案1
我通过更改默认策略解决了这个问题。有三种方法可以实现这一点:
通过赋予群体特权
mounter
首先使用以下命令创建一个组:sudo addgroup mounter
然后将非管理员用户添加到此组。例如,我将非管理员用户添加
normal
到此组。sudo adduser normal mounter
然后以管理员权限打开策略文件。
gksu gedit /var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla
在该文件的顶部有如下部分:
[Mounting, checking, etc. of internal drives] Identity=unix-group:admin;unix-group:sudo; Action=org.freedesktop.udisks.filesystem-*;org.freedesktop.udisks.drive-ata-smart* ResultActive=yes
unix-group:mounter;
在该部分的第一行后面添加Identity=unix-group:admin;unix-group:sudo;
。更改后的部分将如下所示[Mounting, checking, etc. of internal drives] Identity=unix-group:admin;unix-group:sudo;unix-group:mounter; Action=org.freedesktop.udisks.filesystem-*;org.freedesktop.udisks.drive-ata-smart* ResultActive=yes
就是这样。现在非管理员用户可以挂载驱动器而不需要管理员密码。他们只需要添加到mounter
组中即可。注意要将用户添加novice
到组中mounter
,请执行此命令:sudo adduser novice mounter
。
通过授予特定用户特权
如果您不想创建另一个组,您只需在该文件中添加他们的用户名(登录名)。
使用管理员权限打开策略文件。您可以在终端中或在 dash 提示符中按Alt-键入此命令F2。
gksu gedit /var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla
然后在该部分中添加
unix-user:<login-name>
行。Identity
[Mounting, checking, etc. of internal drives]
请记住使用用户的登录名,而不是文字。。例如,如果你想赋予用户tester
此权限,则该行将如下所示[Mounting, checking, etc. of internal drives] Identity=unix-group:admin;unix-group:sudo;unix-user:tester; Action=org.freedesktop.udisks.filesystem-*;org.freedesktop.udisks.drive-ata-smart* ResultActive=yes
保存文件并退出 gedit。
向所有用户授予特权
上述两种方法对于 Ubuntu 中的默认猜测用户不起作用。因为,guest 用户是在登录时动态创建的,注销后会被删除。
为了解决此问题,您可以授予所有用户此权限。
使用管理员权限打开策略文件。您可以在终端中或在 dash 提示符中按Alt-键入此命令F2。
gksu gedit /var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla
然后在部分中添加以下行
unix-user:*
。修改后,部分将如下所示:Identity
[Mounting, checking, etc. of internal drives]
[Mounting, checking, etc. of internal drives] Identity=unix-group:admin;unix-group:sudo;unix-user:*; Action=org.freedesktop.udisks.filesystem-*;org.freedesktop.udisks.drive-ata-smart* ResultActive=yes
保存文件并退出 gedit。
更新
- 在 14.04 中测试。它按照答案中描述的方式工作