在 EC2 实例上禁用 ubuntu 用户的 NOPASSWD sudo 访问

在 EC2 实例上禁用 ubuntu 用户的 NOPASSWD sudo 访问

如何禁用 EC2 实例上默认 ubuntu 用户的无密码 sudo 访问?这样做安全吗?

答案1

请务必先将另一个用户添加到 sudoers 或为 ubuntu 帐户设置密码(我建议前者)。如果不这样做,您的实例可能会被锁定在 sudo 之外!

因此,为自己创建一个用户,使用 ubuntu 用户将自己添加到 sudoers,以自己的身份重新登录并限制 ubuntu 用户。

您可能会注意到,ubuntu 用户实际上并未列在/etc/sudoers

查看/etc/sudoers.d/90-cloud-init-users

注意:务必使用 visudo 编辑任何 sudoers 文件。例如

visudo -f /etc/sudoers.d/90-cloud-init-users

您会注意到该文件中有一行:

ubuntu ALL=(ALL) NOPASSWD:ALL

您可以注释掉该行(#)以将 ubuntu 用户从 sudoers 中完全删除:

# ubuntu ALL=(ALL) ALL

或者如果需要密码,只需删除 nopasswd 部分。

ubuntu ALL=(ALL) ALL

答案2

当然可以。这样安全吗?首先确保在用户 ubuntu 上设置密码。

使用命令 visudo 编辑 sudoers 文件,否则要非常小心。找到与 ubuntu 用户匹配的行并将其更改为ubuntu ALL=(ALL:ALL) ALL

  • 用户名位于行首
  • 首先 ALL 表示它适用于哪些主机(在这种情况下是所有主机)
  • 第二个 ALL 是 ubuntu 可以为哪些用户运行命令(在这种情况下是所有命令)
  • 第三个 ALL 是 ubuntu 可以为哪些组运行命令(在这种情况下是所有组)
  • 最后但并非最不重要的一点是,ALL 表示您可以运行哪些命令(在这种情况下是所有命令)

请务必查看 sudoers 手册man sudoers。首次尝试时,您可以创建另一个用户并将其添加到 suders。

答案3

是的,但在执行此操作之前,请确保将该用户的密码设置为已知的密码。

相关内容