如何创建一个 linux 用户,其中 sudo 提示输入 root 密码而不是当前用户

如何创建一个 linux 用户,其中 sudo 提示输入 root 密码而不是当前用户

我创建了一个新用户,adduser但是当我尝试从他的帐户中执行 sudo 时,我得到了xxxx * is not in the sudoers file. This incident will be reported..

所以我开始篡改visudo命令......

我发现 root 帐户具有以下配置:

root    ALL=(ALL:ALL) ALL

但我不想为我的新用户重复这个......


我希望我的用户 xxxx 没有 root 访问权限,除非使用 sudo
使用 sudo 时,我希望 xxxx 用户提示输入 root 密码,而不是他自己的密码!

谢谢


使用 debian 10
VM,仅 ssh

答案1

我希望我的用户 xxxx 没有 root 访问权限,除非使用 sudo。

sudo这实际上是普通用户的正常状态:除了配置以指定允许哪些命令之外,您无需执行任何操作。

root    ALL=(ALL:ALL) ALL

sudo该行的存在只是为了允许您在已经切换到 root 用户的情况下使用。向非 root 用户授予权限的重要一行是这一行:

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

(在某些 Linux 发行版中,操作系统安装过程中生成的第一个常规用户可能会成为该组的成员sudo,从而自动为其启用 root 访问权限。这是例外情况,并非所有用户的默认设置。)

sudoers 文件中权限规范的基本形式是

<who>  <where>=(<as_who>) <what>
  • <who>指定哪些用户可以使用此条目。它可以是一个用户、一个组(以 % 符号为前缀)或一个先前定义的 User_Alias(基本上是一长串用户和/或组的简写)以及其他一些东西。

  • <where>可以是主机名:它将此项限制为特定系统。它在企业环境中可能很有用,在企业环境中,您将集中管理的标准sudoers文件放在所有主机上,但通常将其指定为 ALL,以避免主机名解析不起作用或系统配置错误时出现问题。

  • (<as_who>)定义可以运行命令的用户帐户。默认值为 root,但您也可以限制用户,例如只能在某些特定的非 root 应用程序帐户上使用 sudo 运行命令。

  • <what>是允许的命令(或多个命令,用逗号分隔)。

还有各种标签和选项,但sudoers简而言之,以上是文件的重要部分。

使用 sudo 时,我希望 xxxx 用户提示输入 root 密码,而不是他自己的密码

这是可能的,而且很容易做到。如果您将这些行添加到您的sudoers文件中:

Defaults:xxxx rootpw,timestamp_timeout=0
xxxx    ALL=(ALL:ALL) ALL

然后对于用户xxxx(和仅有的对于他们),该sudo命令将要求输入 root 密码 - 并且它会询问每次使用该sudo命令,而不是允许最多 15 分钟使用该sudo命令而无需再次询问密码的默认行为。

如果您计划监视用户并在该用户需要时亲自输入 root 密码,这一点很重要 - 如果您错过了该timestamp_timeout=0选项,用户可能会首先要求您输入 root 密码以进行某些合法操作,然后进行一些干扰在接下来的 15 分钟内为您提供帮助,在此期间他们将能够使用sudo他们想要的任何东西。

但请注意如果您告诉用户 root 密码,他们也可以通过该su命令使用它,除非您对 应用非默认限制su。经典的(通常也是唯一的)限制方法是要求用户成为特定组的成员,否则他们将根本su无法使用。su要应用此限制,请编辑/etc/pam.d/su并在开头附近找到此部分:

# Uncomment this to force users to be a member of group root
# before they can use `su'. You can also add "group=foo"
# to the end of this line if you want to use a group other
# than the default "root" (but this may have side effect of
# denying "root" user, unless she's a member of "foo" or explicitly
# permitted earlier by e.g. "sufficient pam_rootok.so").
# (Replaces the `SU_WHEEL_ONLY' option from login.defs)
# auth       required   pam_wheel.so

#只需从最后一行的开头删除,该su命令将仅可由该组的成员使用root

相关内容