有鑑於要關本機, 不小心關到 Server, 所以乾脆先把 server 的 shutdown、halt 禁用, 要用時需要多些步驟才能使用.
移除 Shutdown 避免誤關 Server 的方法
要移除 shutdown、halt 最簡單的方法就是 chmod -x 即可, 再此採用更簡單的方式:
移除 shutdown 權限
chmod 0 /sbin/shutdown
chmod 0 /sbin/halt
執行
- $ shutdown
-bash: /sbin/shutdown: 拒絕不符權限的操作 - $ sudo shutdown
sudo: shutdown: command not found - 就可以避免意外發生
恢復 shutdown
確認要使用時, 再恢復權限
chmod 755 /sbin/shutdown
chmod 755 /sbin/halt
可於 Bash 的 bashrc 增加 alias, 避免忘記.
- 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'
- 就可以使用 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
如果不想要恢復/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