我对 ubuntu 还不熟悉,我想了解限制访问权限以提升对 root 访问权限的最佳实践(即通过 sudo su)。为 ubuntu 用户设置密码是否足够好(这似乎在执行 sudo su 时要求输入密码)还是应该考虑其他因素?
在我当前的测试 Ubuntu 环境(托管在 AWS 上)中,我已为 ubuntu 用户设置了密码,并运行了以下命令:这将删除 ubuntu 用户的无密码要求。我还注意到,如果从 AMI 备份重新启动实例,则会添加sudo sed -re 's/NOPASSWD://' -i.`date -Iseconds` /etc/sudoers.d/90-cloud-init-users
新行,这是正常现象吗?ubuntu ALL=(ALL) NOPASSWD:ALL
答案1
云实例无法与常规桌面相提并论。这些是您使用 SSH 连接的服务器。
如果有人进入了你的机器,你就已经失败了,因此云实例可以是无密码管理员的 Ubuntu。
为 ubuntu 用户设置密码是否足够好(这似乎在执行 sudo su 时要求输入密码)
无需密码。
或者是否应该考虑其他因素?
SSH 私钥就是你想要的。另外,如果需要的话,还可以使用特定位置或机器的锁。我可以从家里或工作场所连接到我们的云实例,除非我事先获得许可,否则无法从其他地方连接到。
我还注意到,如果从 AMI 备份重新启动实例,则会添加新行 ubuntu ALL=(ALL) NOPASSWD:ALL,这是正常行为吗?
GCE/Google 也这么做。它(很可能)是为了确保您始终可以进入机器,因为恢复备份是出现某种问题时要做的事情。如果您忘记了实例的密码,这是重新进入它的唯一方法:没有实时会话或 grub 提示符可以恢复。在这种情况下,无密码管理员更好。
用户ubuntu
和密码仅用于您进行云系统的初始登录和配置。最佳做法是创建您自己的管理员帐户并使用您自己的 SSH 密钥,然后禁用(或删除;我们倾向于禁用它)该ubuntu
用户。其他登录名应使用由管理员创建的自己的帐户。他们中的任何一个都不应该使用该ubuntu
用户。
出于同样的原因,您不升级云,而是创建用户磁盘的副本并将其连接到新的系统磁盘。