su - 用户对没有密码的用户不起作用

fcu*_*hoo 7 users root authentication su

我在 CentOS 上创建了一个用户useradd -M username。现在,我想成为那个用户就像su - username.

它要求我输入该用户的密码,但我没有为该用户设置密码。作为一种解决方法,我必须成为 root,然后才能su - username正常工作。

首先,我认为它要求输入 root 密码,但事实并非如此。有任何想法吗?

slm*_*slm 12

使用命令创建帐户后,useradd您需要以 root 身份运行以下命令为这个新创建的帐户设置密码:

$ passwd <username>
Run Code Online (Sandbox Code Playgroud)

须藤

如果您绝对肯定您 (userZ) 希望在不提供 userX 密码的情况下成为另一个用户 (userX),并且您不想先成为 root,那么您可能正在寻找sudo.

CentOS Wiki 很好地涵盖了您在这篇题为:如何成为 Root 的文章中询问的整个主题。

这是一个概要。

  1. 您希望能够以 root 身份执行任何操作,例如成为其他用户,而无需提供他们的密码。将以下规则添加到您的 sudoers 文件/etc/sudoers. 注意:visudo以 root 身份使用命令编辑 sudoers 文件!

    userZ    ALL=(ALL)       ALL
    
    Run Code Online (Sandbox Code Playgroud)

    上述方法仍会向您询问 userZ 的密码。您可以通过将此规则添加到 sudoers 来摆脱这种保护。

    userZ ALL=NOPASSWD: ALL
    
    Run Code Online (Sandbox Code Playgroud)
  2. 你想从包裹的能力利用成为一个特定的用户sudo

    userZ ALL=(root) NOPASSWD: /bin/su - userX
    
    Run Code Online (Sandbox Code Playgroud)

    注意:也可以执行上述操作,以便 userZ 也必须使用他们的密码来运行su命令。以上只是让我们的 userZ 变成了 userX,仅此而已。