Des*_*ume 4 cloud command-line virtualization amazon-ec2 12.04
我已经启动了 Ubuntu Server 12.04 的 Amazon EC2 实例,一切都很好,除了与我的本地 Ubuntu 不同的是,当我使用命令行执行 sudo 或成为 root 时,EC2 实例从不要求输入任何密码。我试过
passwd
# asks for a new password, I supply one
sudo -i
# always makes me root right away
passwd
# asks for a new password, I supply one
passwd ubuntu
# asks for a new password, I supply one
Run Code Online (Sandbox Code Playgroud)
(ubuntu是安装实例的默认用户。)到目前为止,重启后的事件,我没有注意到任何区别,它仍然从不要求任何密码。
这不是什么大问题,但我想我已经习惯了本地 Ubuntu 的工作方式。
EC2 没有一种简单的方法为您提供ubuntu用户的安全密码,因此sudo在您使用 ssh 私钥安全连接后,默认设置是允许无密码。
如果您向ubuntu用户添加密码,您可以sudo通过编辑/etc/sudoers.d/90-cloud-init-users和更改来要求它:
ubuntu ALL=(ALL) NOPASSWD:ALL
Run Code Online (Sandbox Code Playgroud)
到:
ubuntu ALL=(ALL) ALL
Run Code Online (Sandbox Code Playgroud)
此命令为您执行该编辑(假设未修改的默认 sudoers 文件):
sudo perl -pi -e 's%NOPASSWD:%%' /etc/sudoers.d/90-cloud-init-users
Run Code Online (Sandbox Code Playgroud)
为安全起见,请保持一个单独的 shell 以 root 身份登录,以便您可以修复文件并在您错误编辑和破坏时恢复sudo。
添加密码以sudo提高系统的整体安全性。
仍然建议您不允许使用密码进行 ssh 登录。将其限制为 ssh 私钥。