gksu -w 不能按照我习惯的方式工作吗?

gksu -w 不能按照我习惯的方式工作吗?

我已将其用作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 用户,而不是管理用户

可能的解决方案有两种:

  1. 使用gksu -u admin-user -w gksu -S。这意味着:首先切换到管理用户gksu -u admin-user -w),则变为根(gksu -S)。

  2. 为 root 用户设置密码。这样,gksu -w就会如你所期望的那样工作。

第一种方案的缺点是需要输入两个密码,这可能会让人感到不舒服。第二种方案的缺点是不建议启用 root 用户。

答案2

我建议使用gksudo而不是gksu虽然它们在 Ubuntu 中没有太大区别。只需将“admin-username”添加到“sudoers”或“admin”组,或者只需在 /etc/sudoers 文件中授予其对关机命令的访问权限。

然后,gksu -w <admin-username> <command>您可以使用gksudo <command>。再次强调,使用 sudo/gksudo 的全部目的是让用户能够执行管理任务,而无需授予他们完全的 root 访问权限。

相关内容