今日、自分のローカルマシンにいると思っていたので、誤って本番マシンをシャットダウンしました。私は知っています、初心者の間違い:-(
それが二度と起こらないようにするための解決策として、私はそのマシンが常にオンでなければならないので、シャットダウンコマンドの実行権限を削除することを考えていました。
それは良い考えですか?そうすることで、不要な副作用を確認できますか?
乾杯、ダン
今日、自分のローカルマシンにいると思っていたので、誤って本番マシンをシャットダウンしました。私は知っています、初心者の間違い:-(
それが二度と起こらないようにするための解決策として、私はそのマシンが常にオンでなければならないので、シャットダウンコマンドの実行権限を削除することを考えていました。
それは良い考えですか?そうすることで、不要な副作用を確認できますか?
乾杯、ダン
回答:
実稼働マシンで作業していることを警告する完全に別のアプローチは、端末にマークを付けることです。たとえば、user@machine:~#
テキストはプロダクションマシンでは赤、開発時には緑などになる可能性があり
ます。これを行う方法のチュートリアルは次のとおりです。Color Bashプロンプト
私があなたに与えることができる最高のアドバイスは、rootアクセスが必要でない限り、rootとしてログインしないことであり、各マシンに異なるroot / sudoパスワードがあることを確認してください。
シャットダウンにアクセスできないようにすることは1つのオプションですが、それは良い方法ではありません。およびまたはshutdown
へのエイリアスshutdown -a
touch /etc/shutdown.allow
chmod a-x /sbin/shutdown
また、それはどこで終わりますか?また、停止、再起動、および初期化を禁止しますか?
-a
。さらに、そのようなエイリアスに依存することは、依存することと同じalias rm='rm -i'
です。いつか本当に必要なときに、そのエイリアスがなくなることがあります。その上、shutdown -a
とにかく限られた有用性しかありません。
考慮すべきいくつかのポイント:
私は許可をいじるshutdown
ことが状況を処理する方法だとは思いません。基本的にあなたはレッスンを学びました。あごを上げます。
私は同じようなことをしました-sshセッションの長いチェーンを取得してから、sshで通過したマシンの1つでルートをいじって、自分自身を切断しました。私はrsyncリクエストを失敗させて、世界の反対側のシステムを体系的に破壊しました。私は運用rm -rf / path
サーバーで実行しました。(そのとき、復元がどのように機能するかを知る必要がありました。)
ですから、はるかに古く、うまくいけば少し賢くなった今、私は自分に課す厳しい規則を持っています。
私の仕事の性質上、さまざまなルートプロンプトに多くの時間を費やす必要がありますが、過去のエラーのおかげで、私は始めたときよりもはるかに優れた状況認識を維持しています。
本当に依存します。コマンドをラップするだけでもかまいませんが、その実行可能ファイルに影響する更新またはアップグレードを行うと、そのことを忘れて更新を失敗させる可能性があります。システムシャットダウンコマンドでのプレイはPITAになる可能性があります。特に、システムバイナリでプレイしていることに気付かずに新入社員や交代者がいる場合は特にそうです。
個人的には、システムを名前で識別し、実際のバイナリを実行する前に実際に実行したいこと、またはシャットダウンを確認するために特定の文字列を入力する必要があることを確認するスクリプトでコマンドをラップすることを検討しますバイナリを実行する前。少し休止するはずです。
1つの方法は、を使用su
したり、直接ログインしたりしないことroot
です。アカウントに直接ログインしroot
、ローカルマシンとsshキーで異なるパスワードを使用することをお勧めします。
もちろん、赤い「#」プロンプトを監視することに加えてです。
はい、shutdownコマンドの実行ビットを削除することは、特にマシンにKDEのようなデスクトップ環境があり、ログアウト時の偶発的なシャットダウンを防ぎたい場合に、偶発的なシャットダウンを防ぐ最も簡単で安全な方法です。
混乱している新しい人々については、彼らが最初に行うls -l /sbin/shutdown
ことは、なぜそれが機能しないのかを見つけることだと思います(特に、タブ補完の実行可能ファイル名の習慣が良い場合)。もちろん、あなたが加えた変更について彼らに伝える必要があります。
安全性を高める/etc/rc.local
ために、シャットダウンコマンドから実行ビットを削除する行を追加して、再起動後にリセットすることを忘れないようにすることができます。