删除用户使用 sudo 的权限

fan*_*oja 3 permissions command-line sudo

作为管理员,如何删除用户使用 SUDO 的权限。有没有一个简单的命令来做到这一点?

Per*_*uck 11

只有sudo组内的用户可以使用该sudo命令。要从jdoesudo类型中删除用户(如root):

deluser jdoe sudo
Run Code Online (Sandbox Code Playgroud)

如果不是root,请键入

sudo deluser jdoe sudo
Run Code Online (Sandbox Code Playgroud)

参考:如何从组中删除用户?


更新

正如@Aleks G评论中指出的那样,以上只是事实的一半:

默认情况下,只有sudo组的成员可以运行带有sudo <command>. 这是由行完成的

#  who  where    as-whom  what
  %sudo  ALL  = (ALL:ALL) ALL
Run Code Online (Sandbox Code Playgroud)

/etc/sudoers文件中。它的意思是:

  • 小组成员sudowho)可以运行
  • 在任何计算机上(where
  • 作为任何用户和任何组(as-whom
  • 任何命令(什么

这是 Ubuntu 上的默认设置,因此在组中添加或删除用户会sudo授予或撤销使用sudo <command>.

也可以将其他组和/或用户添加到/etc/sudoers文件(或以下/etc/sudoers.d/),如下所示:

alice  myhost  = (bob) /bin/ls
Run Code Online (Sandbox Code Playgroud)

这意味着:用户alice可以/bin/ls以用户身份运行,bob但只能在主机上运行myhost

alice现在可以了sudo -u bob ls /home/bob。这与sudo组中的成员身份无关。如果你有这样的设置,那么它是不是足以消除alice来自sudo组。相反,您需要alice/etc/sudoers文件中删除该行。

这里,如果你分享的部分是唯一的相关sudoers在不同电脑上的文件,并希望保持它相同的每台计算机上。

  • 这个答案实际上是错误的。任何用户都可以直接通过他们的用户名获得 sudo 权限 - 例如在 sudoers 文件中使用以下行:`username ALL=(ALL) ALL` 或通过任何其他组使用 `%somegroup ALL=(ALL) ALL` (2认同)