当我sudo
以普通的非特权用户身份运行时,它会询问我的密码,而不是 root 密码。这通常很方便,但它减少了某人为了以 root 身份运行命令而必须拥有的信息量。那么我怎样才能sudo
要求输入 root 密码而不是调用用户的密码呢?
我知道它可以用 in 中的一行来完成/etc/sudoers
,但我似乎永远无法正确解析手册页中的 BNF 语法来确切地找出要写的内容。
小智 33
好的,它又来了,所以你可以设置复选标记。
在 中/etc/sudoers
,添加这一行:
Defaults rootpw
Run Code Online (Sandbox Code Playgroud)
打开 rootpw 标志,使 sudo 要求输入 root 密码。
需要目标密码的常见配置(不是我们想要的):
Defaults targetpw
ALL ALL=(ALL) ALL
Run Code Online (Sandbox Code Playgroud)
第二行会大声读出:“所有主机上的所有用户在执行所有命令时都可以模拟(所有)用户。” 以及Defaults targetpw
他们需要知道他们所冒充的用户的密码才能这样做。
天真地将这个简单的配置更改为:
Defaults rootpw
Run Code Online (Sandbox Code Playgroud)
不会让任何用户或组拥有以其他用户身份运行命令的权限。
一种可行的可能性是:
Defaults rootpw
myuser ALL=(ALL) ALL
Run Code Online (Sandbox Code Playgroud)
简而言之,myuser
现在只要知道 root 密码,就可以在所有主机上以任何用户身份运行所有命令。
另一种可行的方法是:
Defaults rootpw
%sudousers ALL=(ALL) ALL
Run Code Online (Sandbox Code Playgroud)
sudousers
只要知道 root 密码,该组的任何成员都可以以任何用户身份在所有主机上运行所有命令。要允许myuser
运行 sudo 命令,sudousers
需要将其添加到其辅助组中。
su
usermod -a -G sudousers myuser
exit
Run Code Online (Sandbox Code Playgroud)
编辑:关于例外和范围的澄清示例:
Defaults rootpw
myuser ALL=(ALL) ALL
%sudousers ALL=(ALL) ALL
Defaults:%sudousers !rootpw
Run Code Online (Sandbox Code Playgroud)
这需要myuser
知道 root 密码,但要求sudousers
组中的任何成员使用自己的密码。请注意,如果myuser
是 的成员sudousers
,则此行为rootpw
也会覆盖它们(最后一个匹配条目覆盖以前的条目)。
小智 5
我知道这个问题很老,但它是我为这个用例找到的最简洁的问题(这是一个很小的百分比,是真的,但在正确的场景中仍然是合法和有帮助的)。
在将来自各种来源的所有步骤放在一起后 - 包括对这个问题的多个答案,这些步骤适用于 Ubuntu-Gnome 16.04 LTS:
sudo passwd
sudo visudo
Defaults rootpw
只是一个简短的说明 - 我还想确保无法使用 root 用户从图形登录中登录,因此正在寻找排除方法。显然,默认情况下排除了 root 用户,并且不能使用 Gnome 图形登录来登录 - 这是一件非常好的事情!
归档时间: |
|
查看次数: |
58450 次 |
最近记录: |