題 如何禁用可怕的終端命令？
你如何禁用可怕的終端命令？
我使用SSH訪問遠程Ubuntu服務器而無法訪問物理服務器。我以為我在打字'shutdown'進入在Ubuntu OS上運行的NoSQL服務器，但實際上我告訴Ubuntu服務器關閉。然後我不得不告訴服務器管理員我做了什麼，以便他可以為我啟動物理服務器。那太尷尬了！
我怎樣才能防止這種情況再次發生？
我敢說你學到了這一課，所以不必再覺得需要再次禁用任何命令。我還補充說，你不要傻瓜式的GNU / Linux，你只是比傻瓜好。
標準答案是“不要以root身份登錄”。以root身份運行的所有命令都很可怕。如果這不是一個選項，你可以將一些別名命令放入你的 .bashrc 禁用你發現特別可怕的命令。例如：
然後，如果您鍵入shutdown，您將收到以下消息：
退出當前 ssh 會話並再次登錄或使用 . ~/.bashrc 應該加載/運行.bashrc。也許嘗試跑步 rm 沒有任何參數，以確保您的服務器沒有禁用自動加載 .bashrc 在登錄或類似。
請注意，如果您主要關注暫停和關閉，則可以考慮安裝 莫莉後衛，這將使您在關閉機器之前鍵入主機名。如果您經常在命令行上關閉整個操作系統，但是想要確保關閉正確的操作系統，這會更有用。
您還可以使用一個不太可怕的命令（例如logout或exit）來測試。
話雖如此，不要成為使用的布偶 sudo 對於 一切。了解您正在做什麼，並了解它為什麼/不需要root權限。
此外，您可以區分根/用戶shell的提示。 這也讓你更明顯地回到shell提示符而不是“其他一些CLI“。我的色彩非常豐富多彩，並且有許多有用的信息（例如主機名） 非常 很容易知道命令將在哪個主機上執行，並且還可以更容易地回顧歷史記錄並找到提示 - 根shell使用默認提示。
這更適合用於“您的“帳戶，但如果您認真對待安全/系統管理，那麼您將不會共享密碼/帳戶，並且您不會在沒有完全了解的情況下坐在root shell中。
包'molly-guard'（至少在Debian派生系統上）將安裝一個關閉，停止，關閉和重啟的包裝器。如果它檢測到終端是遠程終端，則會提示輸入主機名。如果不匹配，則取消該命令。
我接受了一個我非常喜歡的答案，但是，如果其他人正在閱讀並想要一個更簡單的答案，那麼這就是我的。
找到.bashrc文件並將其作為最後一行：
這可能很愚蠢，但它很簡單並且有效。不過我更喜歡以更好的方式來解答答案！
你可能已經成為一些新的Ubuntu愚蠢的犧牲品。
Ubuntu曾經擁有正常，經典 shutdown 帶有強制時間參數的命令。
如果我打字，這就是Ubuntu 12上發生的事情 shutdown，即使是普通用戶：
現在，這是Ubuntu 16.10。我不是根：
如果沒有參數，它會在60秒後安排關閉，即使您不是root用戶，也只是使用管理員權限創建的帳戶。
責怪規範。
對於 shutdown （reboot， halt 和相關的）：我有一份副本，問我是否確實（並且它無論如何都沒有）。我將這些腳本存儲在 /usr/local/sbin。在Debian上，這優先於其他 /sbin （它是PATH的第一個目錄）。
系統腳本使用完整路徑，所以這樣 劈 阻止我停止遠程服務器而不是本地機器（來自的不良行為） 真棒 WM），但沒有其他間接影響，我仍然可以在真正需要時將它們用作/ sbin / shutdown。
Sudoers文件允許更精細的粒度級別，而不僅僅是''允許使用sudo'*，特別是您可以使用命令別名來創建特定用戶或組限制的命令組的白名單。我使用過限制為ssh訪問的遠程服務器並允許無密碼的sudo（我們確實需要密碼保護的ssh密鑰）。這樣做有一些很好的理由，但確實存在危險，所以我們使用命令別名來允許不受限制地訪問他們需要做的事情（重新啟動服務器等）而不給予他們沒有的權限。
還有語法可以說 '無法運行此命令'。它可以解決，因此它不應該用作真正的安全措施，但它適用於您描述的方案。
男人sudoers有一些關於如何設置這一切的好例子。
當然這需要使用sudo，但這應該是不言而喻的。
對於關閉，有一個molly-guard。您只需要安裝它，當您嘗試通過ssh關閉時，它會要求您鍵入主機名。
對於刪除文件，有像libtrash這樣的解決方案，它通過一個模擬垃圾桶 LD_PRELOAD 圖書館。
你可以測試你正在改變/刪除/ ...的文件 也許 程序。在測試某些東西時，這非常酷。
試試這個：當你在遠程shell上時，每​​次你打算鍵入“返回”鍵時，停止5秒鐘，手指懸停在“返回”鍵上，然後重新讀取你要發送的命令。可以嗎？你確定嗎？
這似乎很苛刻，但另一方面，我們不應該花很多時間在遠程砲彈上。我們應該找到自動化維護工作的所有方法，以便我們很少（如果有的話）需要登錄到遠程服務器。
為什麼Helvetica Neue渲染不正確？ 帶有Docker Windows的Wifi適配器問題（Native，HYPER-V） 從USB 2.0閃存驅動器運行VM - Mac / Parallels / XP 三星Galaxy S用於Ubuntu桌面的掛載點是什麼？ 像Gnome Terminal for Windows這樣的控制台[關閉] SQLITE3 for dummies - 解決了（有點） 如何通過VNC將Windows密鑰從Windows發送到Linux？