最終解決方案

最終解決方案

我們的臨時伺服器位於 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.


最終解決方案

只是為了澄清一下,我的錯誤是我為錯誤的用戶設定了密碼,我嘗試將其設定為而我應該把它設定為烏班圖和:

~$ sudo passwd ubuntu

然後更新/etc/sudoers所以這樣烏班圖用戶在運行命令時必須提供密碼sudo。要編輯此文件,您必須運行sudo visudo並新增:

ubuntu        ALL=(ALL)       ALL

答案1

如果你有一行像

ALL ALL=(ALL) NOPASSWD:ALL

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

myuser ALL=(ALL) ALL

答案2

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 命令輸入密碼。

相關內容