我刚刚开始使用Amazon EC2,我对用户和密码有疑问。
众所周知,默认用户(在Ubuntu Server 12.04 LTS的情况下名为ubuntu
)没有密码,而是使用公钥 - 私钥验证登录。 / p>
供参考,这里是/etc/sudoers.d/90-cloudimg-ubuntu
文件的内容:
#
ubuntu user is default user in cloud-images.
#
It needs passwordless sudo functionality.
ubuntu ALL=(ALL) NOPASSWD:ALL
我创建了第二个名为#
的用户,该用户是#
组的成员。用户jdoe
具有密码以及公钥 - 私钥对。
以admin
身份登录时,我尝试使用以下命令切换到默认jdoe
用户,但我意外提示输入密码。怎么会?用户jdoe
(afaik)没有密码!
ubuntu
提前感谢您的帮助和评论!
答案 0 :(得分:1)
su
和sudo
是两件不同的事情,你会感到困惑。
当您以ubuntu
登录并使用sudo
运行任何命令时,由于ubuntu ALL=(ALL) NOPASSWD:ALL
现在jdoe
是admin
组的一部分,但admin
组需要根据%admin ALL=(ALL) ALL
提供密码。通过运行visudo
找到此语句。请注意,此声明没有NOPASSWD:ALL
因此,当用户jdoe
以sudo
运行任何命令时,他必须输入密码
现在,su
与sudo
完全不同。当您运行su ubuntu
时,图片中没有sudo
内容。因此,它会要求您输入用户ubuntu
的密码。
在otehrwords中,语句jdoe@host:~$ su ubuntu
要求您输入用户ubuntu
的密码。由于您没有设置ubuntu
密码,因此永远不会成功。
但是,如果您以ubuntu
登录并尝试sudo su jdoe
,则不会要求输入任何pssword。但是......如果您以ubuntu
登录并运行su jdoe
,它会询问您输入用户jdoe
的密码。试试这个,这样你就可以更好地了解它是如何工作的。