移除 Shutdown 避免誤關 Server 的方法

有鑑於要關本機, 不小心關到 Server, 所以乾脆先把 server 的 shutdown、halt 禁用, 要用時需要多些步驟才能使用.

移除 Shutdown 避免誤關 Server 的方法

要移除 shutdown、halt 最簡單的方法就是 chmod -x 即可, 再此採用更簡單的方式:

移除 shutdown 權限

  1. chmod 0 /sbin/shutdown
  2. chmod 0 /sbin/halt

執行

  1. $ shutdown
    -bash: /sbin/shutdown: 拒絕不符權限的操作
  2. $ sudo shutdown
    sudo: shutdown: command not found
  3. 就可以避免意外發生

恢復 shutdown

確認要使用時, 再恢復權限

  1. chmod 755 /sbin/shutdown
  2. chmod 755 /sbin/halt

可於 Bash 的 bashrc 增加 alias, 避免忘記.

  1. vim .bashrc
    alias shutdowndisable='sudo chmod 0 /sbin/shutdown; sudo chmod 0 /sbin/halt'
    alias shutdownenable='sudo chmod 755 /sbin/shutdown; sudo chmod 755 /sbin/halt'
  2. 就可以使用 shutdowndisable 和 shutdownenable 來關閉、啟用 shutdown.

附註: 感謝 toodoo 的留言建議, 沒想到還有這招. orz (可以 man ld-linux)

如果不想要恢復/sbin/shutdown和/sbin/halt的執行權限,
又想執行shutdown和halt指令的話, 可以用以下指令代替:

64bit系統: /lib64/ld-linux-x86-64.so.2 /sbin/shutdown -h now
32bit系統: /lib/ld-linux.so.2 /sbin/shutdown -h now

相關網頁

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

在〈移除 Shutdown 避免誤關 Server 的方法〉中有 1 則留言

  1. 如果不想要恢復/sbin/shutdown和/sbin/halt的執行權限,
    又想執行shutdown和halt指令的話, 可以用以下指令代替:

    64bit系統: /lib64/ld-linux-x86-64.so.2 /sbin/shutdown -h now
    32bit系統: /lib/ld-linux.so.2 /sbin/shutdown -h now

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料