Anw*_*war 7 administration nautilus mount privileges
我想为非管理员用户提供挂载权限以通过 nautilus 挂载驱动器。我不希望他们给予其他管理员权限。我也不想使用 setuid 方法。
我怎样才能做到这一点?我正在使用 Ubuntu 12.04。
我通过更改默认策略解决了这个问题。有以下三种方法可以实现:
首先mounter使用以下命令创建一个组:
sudo addgroup mounter
Run Code Online (Sandbox Code Playgroud)然后将非管理员用户添加到该组。例如,我将非管理员用户添加normal到该组。
sudo adduser normal mounter
Run Code Online (Sandbox Code Playgroud)然后以管理员权限打开策略文件。
gksu gedit /var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla
Run Code Online (Sandbox Code Playgroud)在文件的顶部有一个像这样的部分:
[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
Run Code Online (Sandbox Code Playgroud)
在该部分的第一行添加unix-group:mounter;after 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
Run Code Online (Sandbox Code Playgroud)就是这样。现在,非管理员用户无需管理员密码即可安装驱动器。他们只需要添加到mounter组中。注意将用户添加novice到组中mounter,执行以下命令:sudo adduser novice mounter。
如果您不想创建另一个组,您可以在该文件中添加他们的用户名(登录名)。
以管理员权限打开策略文件。您可以通过按Alt-在终端或破折号提示中键入此命令F2。
gksu gedit /var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla
Run Code Online (Sandbox Code Playgroud)然后在部分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
Run Code Online (Sandbox Code Playgroud)保存文件并退出 gedit。
以上两种方法对 Ubuntu 中的默认猜测用户不起作用。因为,来宾用户是在登录时动态创建的,并在注销后被删除。
要解决此问题,您可以授予所有用户此权限。
以管理员权限打开策略文件。您可以通过按Alt-在终端或破折号提示中键入此命令F2。
gksu gedit /var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla
Run Code Online (Sandbox Code Playgroud)然后在部分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
Run Code Online (Sandbox Code Playgroud)保存文件并退出 gedit。