我已经在 CentOS 上使用useradd -M username
.现在,我想成为像 那样的用户su - username
。
它要求我输入该用户的密码,但我没有为该用户设置密码。作为一种解决方法,我必须成为 root 然后才能su - username
正常工作。
首先,我以为它需要 root 密码,但事实并非如此。有任何想法吗?
答案1
使用命令创建帐户后,useradd
您需要以 root 身份运行以下命令来为新创建的帐户设置密码:
$ passwd <username>
须藤
如果您绝对确定您 (userZ) 希望在不提供 userX 密码的情况下成为另一个用户 (userX),和您不想首先成为 root,然后您可能会寻找sudo
.
CentOS Wiki 很好地涵盖了您在这篇文章中询问的整个主题,标题为:如何成为根用户。
这是一个概要。
您希望能够以 root 身份执行任何操作,例如成为其他用户,而无需提供密码。将以下规则添加到您的 sudoers 文件
/etc/sudoers
.笔记:您可以以 root 身份使用命令编辑 sudoers 文件visudo
!userZ ALL=(ALL) ALL
上述方法仍然会询问您 userZ 的密码。您可以通过将此规则添加到 sudoers 来摆脱此保护。
userZ ALL=NOPASSWD: ALL
您想要分配以下能力:仅有的成为使用 的特定用户
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 规范而不进行检查)