Amazon-Ec2

在 sudo su 上為 Amazon EC2 實例設置密碼

  • April 29, 2021

我們的登台伺服器位於 Amazon EC2 實例上。當您 ssh 進入它時,您可以執行sudo命令或sudo su無需輸入密碼。

無論如何,當他們嘗試使用命令時,我可以要求使用者輸入密碼sudo嗎?我有一個需要訪問權限的第 3 方開發人員,我想限制他們的 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#

更新

我嘗試通過執行sudo visudo並添加來要求輸入密碼:

ubuntu        ALL=(ALL)       ALL

現在我被要求輸入密碼,但我設置的密碼不起作用!幸運的是,我在開始之前創建了一個 AMI。

問題可能是我沒有為ubuntu使用者設置密碼,我應該執行sudo passwd ubuntu而不是sudo passwd root.


最終解決方案

澄清一下,我的錯誤是我為錯誤的使用者設置了密碼,我試圖為root設置它,而我應該為ubuntu設置它:

~$ sudo passwd ubuntu

然後更新*/etc/sudoers以便ubuntu*sudo使用者在執行命令時必須提供密碼。要編輯此文件,您必須執行sudo visudo並添加:

ubuntu        ALL=(ALL)       ALL

如果你有一條線

ALL ALL=(ALL) NOPASSWD:ALL

在 /etc/sudoers 中,這將允許所有使用者在不提示輸入密碼的情況下使用 sudo。如果您取消註釋此行,您將必須指定允許使用 sudo 的使用者,例如

myuser ALL=(ALL) ALL

Sudo 將記憶體您的憑據,因此如果您在短時間內多次使用它,它只會在第一次詢問您的密碼。

手冊頁說:

  timestamp_timeout
                    Number of minutes that can elapse before sudo will
                    ask for a passwd again.  The timeout may include a
                    fractional component if minute granularity is
                    insufficient, for example 2.5.  The default is 5.
                    Set this to 0 to always prompt for a password.  If
                    set to a value less than 0 the user's time stamp
                    will never expire.  This can be used to allow users
                    to create or delete their own time stamps via "sudo
                    -v" and "sudo -k" respectively.

因此,如果您總是想請求密碼,您只需鍵入sudo visudo即可編輯文件。添加這一行:

Defaults        timestamp_timeout=0

這將需要為所有 sudo 命令輸入密碼。

引用自:https://serverfault.com/questions/728831