最近我对 Ubuntu 中如何处理多个用户越来越感兴趣,并且遇到了一个有趣的问题:以sudo
标准帐户身份运行命令。如果我运行需要 root 权限的 GUI 应用程序(如 GParted),它会让我选择以任何管理员身份进行身份验证。但是,sudo
在终端中运行只会要求输入当前用户的密码,如果在标准帐户中运行则会失败。我意识到我可以通过将终端会话切换到管理员帐户来轻松解决这个问题,但这需要为一个 root 命令多写几行命令。我也想到了使用pkexec
而不是 的想法sudo
,但它似乎与vim
和存在一些问题gedit
。有没有更简单的方法可以从标准帐户以 root 权限运行命令?最好是,有一种方法可以告诉它尝试使用不同的帐户进行超级用户授权。如果有任何区别,我在 Ubuntu 14.04 中使用zsh
而不是。bash
答案1
您必须将标准用户添加到 /etc/sudoers 文件中,以授予他们运行提升的命令的权限。
例如对于名为“demo”的用户:
demo ALL=(ALL:ALL) ALL
第一个字段表示该规则将应用于的用户名(演示)。
第一个“ALL”表示该规则适用于所有主机。
第二个“ALL”表示演示用户可以以所有用户的身份运行命令。
第三个“ALL”表示演示用户可以以所有组的身份运行命令。
最后的“ALL”表示这些规则适用于所有命令。
答案2
对于不需要连接到 tty 或 X 服务器的命令(即一些基于命令行的管理实用程序),您可以使用
su root -c <command>
该命令可能需要用引号括起来,并且会提示您输入 root 用户的密码。请注意,这需要启用 root 帐户,而在 Ubuntu 上默认情况下不会启用该帐户。我也尝试过
su <administrator username> -c "sudo <command"
但由于缺少连接的 tty 而失败。