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

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

我已经在 CentOS 上使用useradd -M username.现在,我想成为像 那样的用户su - username

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

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

答案1

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

$ passwd <username>

须藤

如果您绝对确定您 (userZ) 希望在不提供 userX 密码的情况下成为另一个用户 (userX),您不想首先成为 root,然后您可能会寻找sudo.

CentOS Wiki 很好地涵盖了您在这篇文章中询问的整个主题,标题为:如何成为根用户

这是一个概要。

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

    userZ    ALL=(ALL)       ALL
    

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

    userZ ALL=NOPASSWD: ALL
    
  2. 您想要分配以下能力:仅有的成为使用 的特定用户sudo

    userZ ALL=(root) NOPASSWD: /bin/su - userX
    

    笔记:也可以执行上述操作,以便 userZ 也必须使用其密码来运行su命令。上面只是让userZ变成userX,仅此而已。

答案2

它要求我输入该用户的密码

这就是它的工作原理。如果您不是 root,则在没有密码的情况下无法假设其他用户的身份。

如果 CentOS 附带安装了 sudo 你可以添加

youruserid ALL = (username) NOPASSWD: ALL

visudo然后sudo -u username bash就像su - username

(编辑:尝试输入 sudo 规范而不进行检查)

相关内容