我們的臨時伺服器位於 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 命令輸入密碼。