让 Amazon EC2 实例要求 sudoing 密码

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 的工作方式。

Eri*_*ond 5

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 私钥。