Sudo

有什麼方法可以禁用關閉遠端機器?

  • August 14, 2013

我有時使用 錯誤地關閉了遠端機器sudo init 0,所以我在我的一個 rc 文件中寫了類似的內容:

alias sudo='sudo '
if [ $SSH_CLIENT ]; then
 alias init 'echo Never use init when ssh'
fi

但是,儘管執行了 rc 文件,init但仍然執行/sbin/init而不是別名。而且我不喜歡將全域包裝腳本添加到/usr/local/bin. 那可以禁用sudo init 0嗎?或者我必須向管理員尋求幫助?

重新定義sudo為函式:

sudo() if [ "$1" = init ] && [ -n "$SSH_CLIENT" ]; then
 echo >&2 "Never use init when ssh"
 return 1
else
 command sudo "$@"
fi

如果您希望您的別名在 之後擴展sudo,您仍然可以添加一個

alias sudo='sudo '

它仍然會呼叫我們的sudo函式。

對於 debian 和衍生產品,有一個名為的軟體molly-guard完全符合您的要求——如果它檢測到遠端登錄,它會攔截關閉命令,並要求您確認您確定您正在關閉正確的系統,方法是輸入系統的名稱。

引用自:https://unix.stackexchange.com/questions/86595