我已将其用作gksu -w shutdown -hP now
系统范围的菜单命令icewm
,这样当非管理员用户从菜单中单击关机时,将出现一个密码对话框,要求输入管理员密码。那是我在 Linux Mint 中运行 icewm 时的情况。
当我切换到 Ubuntu 时,相同的命令不起作用。虽然出现了要求输入管理员密码的相同对话框,但我尝试的所有现有 sudoers 密码都不起作用或被接受。甚至我在安装 Ubuntu 时被要求设置的第一个帐户的密码也不起作用。
我也尝试过gksu -u admin-user -w 'shutdown -hP now
,但是出现了“关机:需要 root 权限”的错误信息。
那么 Ubuntu 和 Mint 的 gksu 规则有什么区别?我目前正在使用 Ubuntu 12.04 LTS,我指的 Mint 是 Mint 13 Maya。还有其他什么方法可以允许非管理员用户在 IceWM 菜单中执行关机命令,但我仍然希望他们在关机之前先向我请求权限,即询问我的管理员密码?
除了关机之外,IceWM 菜单中还有其他需要管理员权限的命令,例如hibernate
,用于挂载备份分区,以及synaptic
,我已应用gksu -w
。
答案1
问题:
gksu -w
将要求您输入 root 密码,但是在 Ubuntu 中 root 用户默认没有密码,因此您尝试的所有操作都将失败。gksu -u admin-user -w
将执行shutdown
为管理用户,但你需要是 root 用户,而不是管理用户。
可能的解决方案有两种:
使用
gksu -u admin-user -w gksu -S
。这意味着:首先切换到管理用户(gksu -u admin-user -w
),则变为根(gksu -S
)。为 root 用户设置密码。这样,
gksu -w
就会如你所期望的那样工作。
第一种方案的缺点是需要输入两个密码,这可能会让人感到不舒服。第二种方案的缺点是不建议启用 root 用户。
答案2
我建议使用gksudo
而不是gksu
虽然它们在 Ubuntu 中没有太大区别。只需将“admin-username”添加到“sudoers”或“admin”组,或者只需在 /etc/sudoers 文件中授予其对关机命令的访问权限。
然后,gksu -w <admin-username> <command>
您可以使用gksudo <command>
。再次强调,使用 sudo/gksudo 的全部目的是让用户能够执行管理任务,而无需授予他们完全的 root 访问权限。