「sudo rm -rf /」を防ぐ方法


10

数回誤ってコマンドを実行しましたsudo rm -rf /

このコマンドを実行しないようにする方法はありますか?たとえば、sudoersファイルを使用して、どういうわけかそれを無効にできますか?


2
どうやってこのコマンドを誤って入力してから実行しますか?
fnord_ix 2015年

このようなコマンドを入力すると sudo rm -rf / Applications/chess.app/とAの間のスペースに注意してください。そうです
iProgram

回答:


14

次のような行を追加できます

%admin ALL = !/bin/rm -rf /

あなたにsudoers固有のオプションを持つコマンドの実行を防止するためのファイル。

または、いくつかのコマンドを除外する場合は、コマンドエイリアスを使用できます

Cmnd_Alias DANGEROUS_CMNDS=/bin/rm -rf /, /bin/rm -fr /
%admin ALL=!DANGEROUS_CMNDS

を使用して安全にプレイすることもできます

Cmnd_Alias DANGEROUS_CMNDS=/bin/rm -rf /, /bin/rm -fr /, /bin/rm / *, /bin/rm * /, /bin/rm -rf / *, /bin/rm -rf * /, /bin/rm -fr / *, /bin/rm -fr* /
%admin ALL=!DANGEROUS_CMNDS

しかし、足で自分を撃つことができる他の方法があるかもしれないrmのでとにかく注意してください。

ただし、すべての照合はコマンドの完全な文字列に対して行われるため、sudo rm -rf /Volumes引き続き機能します(と同様cd /; sudo rm -rf .)。

PS:すべての手段によって、使用sudo visudo編集するsudoersファイルおよびNEVERの直接編集、それを

PPS:私は明らかにこれをテストしませんでしたrm/bin/echo代わりにのみ)


コメントは詳細な議論のためのものではありません。この会話はチャットに移動しました
bmike

6

この回答を聞きたくないと思わせるような方法で質問を言ったことは知っていますが、同じ間違いを何度も繰り返す傾向がある場合は、sudoersファイルから自分を削除する必要があります。

根本的な問題はrm、ゴミ箱に移動するエイリアスが設定されていない(これにより、現在および過去に明らかに使用されている)か、強制的rm -rに強制されていることです。rm -ri

alias rm='/bin/rm -i'

command rm -rf whatever2回測定するときに心を鍛えたら、いつでもエイリアスを回避できrm -rfます。使用するには、1回カットする必要があります。


そのヒントをありがとう。非表示の管理者アカウント(アクセス端末のみ)と、通常の使用のみの標準アカウントを作成することを考えていました。代わりにラッパーをゴミ箱に移動させることもできます。そのヒントをありがとう。sudoを防ぐ方が安全なステップかもしれないと思います。非表示の管理者にログインして、アクセスできることを確認します。
iProgram

マークしていないのは、上記に回答していないため、回答済みです。これはまだ良いアドバイスです
iProgram
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.