在 sudo su 上为 Amazon EC2 实例设置密码

Hol*_*lly 7 password sudo amazon-ec2 amazon-web-services

我们的临时服务器位于 Amazon EC2 实例上。当您通过 ssh 进入它时,您可以执行sudo命令或sudo su无需输入密码。

无论如何,我可以在用户尝试使用命令时要求用户输入密码sudo吗?我有一个需要访问权限的 3rd 方开发人员,我想限制他们的 root 权限。

我尝试设置密码,sudo passwd但我仍然不需要密码。

~$ sudo passwd root
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
~$ sudo su
/home/ubuntu# exit
~$ sudo passwd
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
~$ sudo su
/home/ubuntu#
Run Code Online (Sandbox Code Playgroud)

更新

我尝试通过运行sudo visudo并添加来要求输入密码:

ubuntu        ALL=(ALL)       ALL
Run Code Online (Sandbox Code Playgroud)

现在我被要求输入密码,但我设置的密码不起作用!幸运的是,我在开始之前创建了一个 AMI。

问题可能是我没有为用户设置密码ubuntu,我应该运行sudo passwd ubuntu而不是sudo passwd root.


最终解决方案

为了澄清一下,我的错误是我为错误的用户设置了密码,我尝试为root设置它,而我应该为ubuntu设置它:

~$ sudo passwd ubuntu
Run Code Online (Sandbox Code Playgroud)

然后更新/etc/sudoers以便ubuntu用户在运行sudo命令时必须提供他们的密码。要编辑此文件,您必须运行sudo visudo并添加:

ubuntu        ALL=(ALL)       ALL
Run Code Online (Sandbox Code Playgroud)

Ste*_*sen 7

如果你有一条像

ALL ALL=(ALL) NOPASSWD:ALL
Run Code Online (Sandbox Code Playgroud)

在 /etc/sudoers 中,这将允许所有用户在不提示输入密码的情况下进行 sudo。如果您取消注释此行,则必须指定允许使用 sudo 的用户,例如

myuser ALL=(ALL) ALL
Run Code Online (Sandbox Code Playgroud)