Amazon-Ec2
在 sudo su 上為 Amazon EC2 實例設置密碼
我們的登台伺服器位於 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 命令輸入密碼。