Sudo

在機器上禁用 su

  • March 26, 2017

有沒有辦法只允許指定使用者使用 su(比如使用 visudo 進行 sudo)。

這樣做的原因是我想為我的 root 帳戶保留一個簡單(弱)的密碼,並且擁有可以 su/sudo 只能使用 pub/private 密鑰登錄到機器的帳戶。

然後,所有其他帳戶將無法以 root 或可以 su 的帳戶身份 su。

是的,“wheel”組技巧也可以在 linux 上使用:您只需為其配置 pam,然後,只有 wheel 成員可以執行 su。

在 Debian 上,您必須取消註釋/etc/pam.d/su

這絕對是在任何伺服器上要做的第一件事,否則,任何網路伺服器/被黑客入侵都可能導致 root 黑客攻擊。

無論“su”上的控制項如何,root 的弱密碼都是愚蠢的。即使使用者“root”只能在受限機房中的控制台登錄,我也不允許使用者“root”使用弱密碼。

我建議完全禁用“su”並為所有內容使用“sudo”。通過禁用,我的意思是:

  • 利用任何特定於系統的方法來限制對“su”的訪問(例如 BSD 的組“輪子”技巧,或 Linux 等價物)。請注意,這沒有正式的標準;例如,POSIX 不要求存在“su”。
  • 刪除它 ( rm -f /bin/su)。
  • 刪除其執行權限位(chmod o-x /bin/suchmod go-x /bin/su)。
  • 刪除其 setuid 權限位 ( chmod u-s /bin/su)。

通過刪除或刪除權限位來禁用“su”的殘餘問題是某些系統腳本可能依賴於su存在。沒有一個特別乾淨的解決方案 - 但它們通常很少而且相差很遠,因為’su’提示輸入密碼並且在腳本環境中不喜歡提示。另一次使用 ‘su’ 是當 ‘root’ 執行命令成為另一個使用者時;這是通過刪除 setuid 位來支持的(使用者 root 可以執行它,但沒有其他人可以有用地這樣做)。您可以通過刪除公共和可能的組執行權限來加強這一點(chmod u-s,go-rwx /bin/su)。

如果您沒有使用系統特定的方法之一,請非常小心;在將其投入生產之前進行測試。

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