rootとして実行するのはなぜ悪いのですか?


9

フォーラムや他のWebサイトで、rootとして実行/ログインするような冗談を言って、それがひどいもので誰もがそれについて知っているはずの投稿をよく目にします。ただし、この件に関して検索で明らかになることはあまりありません。Linuxの専門家には広く知られているかもしれませんが、理由は本当にわかりません。私がLinuxを最初に試したとき(RedhatとMandrake)は、常にrootとして実行していたことを覚えており、そのために問題が発生したことを覚えていません。ルートユーザー(Suse?)の壁紙として、警告サインのある明るい赤の背景を持つディストロが実際にいくつかあります。私はWindowsのインストールで通常使用する「管理者」アカウントをまだ使用しており、問題も発生していません。

回答:


9

これらのユーザーは、システムへの管理アクセス、ユーザーおよびユーザーが実行するアプリケーションを許可して、保護メカニズム(ファイルシステムのアクセス許可など)を回避し、システムですべてを実行できるようにします。悪意のあるソフトウェアは無制限のアクセスを好みます。

簡単な例として、

sudo rm -rf *

ルートディレクトリにいる場合、Linuxシステム上のほとんどすべてが削除されます。それほど明白である必要はなく、悪意のあるものである必要もありません。root権限を必要とするスクリプト内の予期しない未定義の変数のようなものが深刻な問題を引き起こす可能性があります:

rm -rf $destinationDir/*

# if the variable is undefined and the shell doesn't care, the result is:
rm -rf /*

時々、それはあなたのシステムの半分を削除するスクリプトの単純なタイプミスです。

したがって、一般的には、本当に必要な場合は、昇格されたアクセス許可でのみプログラムを実行することをお勧めします。


3
つまり、危険なことです。
digitxp

そのコマンドを見るだけで、私の胃が動かなくなります。
ポールランメルツマ

4

Linuxのルートは、Windowsの管理者アカウントよりも強力です。これは、通常はアクセスできないWindowsのSYSTEMアカウントに相当します。


0

これは、UACを完全に無効にし、Windowsボックス上のすべてのユーザーに対して管理者として実行することと同じです。マルウェアはより簡単にインストールでき、ドライブバイダウンロードはより効果的です。侵入があった場合、それらはあなたのコンピューター上で神になりました。ユーザー特権を効果的に削除するだけです(一般に悪い習慣です)。imho、問題がなければ、非常に幸運であるか、信じられないほど安全なブラウジング習慣を持っているか、最も可能性が高い....問題があり、それを知らなかった。


私はどのような問題を抱えていて(そして今はWindowsで)知り得なかったのでしょうか?
Mussnoon、2010

プロセッサやディスクに負荷をかけないタイプのルートキットを検出しない場合があります(DDoSの一部として2分ごとに1回のget / postでWebサイトをポーリングするなど)。その他の可能性としては、PCI関連データ(クレジットカード番号)をディスクでゆっくり検索することが挙げられます
RobotHumans

0

特定の方法でディレクトリ構造を参照し、rm -rf *いくつかのディレクトリで実行することになっていたスクリプトを(少なくとも2回)書いてい ます。いくつかのバグがあり、スクリプトは最終的に"/"(ルート)ディレクトリに移動して実行されましたrm -rf *。これはもちろん最悪の例ですが、悪意のあるスクリプトやコマンドがさらに少ないと、rootとして実行している場合にシステムに重大な損傷を与える可能性があります。


スクリプト(特にroot権限で実行する必要があるもの)の場合は、「rm -rf / full / path / to / target / dir / *」または「cd / some / nonexisting / directoy / | exit 1」のようなセーフティネットを使用する必要があります。 。

0

それに付随する力、したがって間違いの影響は別として、警告も出されません。また、予期しないことを警告するのは警告です。

rootとしてGUIを実行するときのように、マルウェアがそれ自体をインストールしようとしたことをどのようにして知ることができますか?


0

あなたはマイクロソフトとアンチウイルスがこの問題を扱っているという悲しい悲劇を抱えています。管理者アカウント(root)は、(誰もが言うように)無制限のアクセス権を持つことを目的としています。システムファイルを変更してマシンを起動できないだけでなく、他のユーザーデータにアクセスすることもできます(コンピューターへの物理的なアクセスが可能な場合、ユーザーアクセス許可ではデータアクセスと変更を保護できません)。さて、あなたが「見ない」ことについて。

Windowsマシンを常に管理者として実行するのは残念なことです。これには、吸い込まれたセッション内で別のユーザーになることができるなどの十分な理由があります(プログラムのインストールでは、ログアウトして管理者としてログインし、アプリケーションをインストールする必要があり、実行するには管理者である必要さえあります)。その結果、アプリケーションをインストールしていなくても、コンピューターが予期しないことに慣れてしまいます。

その結果、人々は管理者としての実行から遠ざかっているわけではありませんが、MicrosoftはOS UACの下線構造に権限制御を提供しています。これは、あなたが誰であるかに関係なく、実行する許可をアプリケーションに与えるように求められることを意味します。Vistaは管理者ユーザー向けに2つの層を持っているので、本当に悪かった。「このプログラムを実行しますか?」

Linuxでは、非常に異なる哲学が見られます。まず、OSは指定したことを実行します。実際にアプリケーションを実行するつもりであるかどうかの二重チェックはありません。第二に、ユーザーはシステムに対してやりたいことを何もすることができません。これは、システムがユーザーのミスから安全であることを意味しますが、ユーザーは必要に応じていつでも許可を適切なレベルに上げることができます。Microsoftは基本的にユーザーレイヤーとは別の権限エスカレーションレイヤーを構築してきましたが、Linux / Unixは常に、ユーザーと連携して権限をエスカレートするように設計されています。


0

Linuxでは、ほとんどの場合、ユーザー(またはユーザーに代わって動作するアプリケーション)が誤って馬鹿なことをするのを防ぎます。

Windowsでは、プログラムファイルまたはWindowsフォルダーへの書き込みアクセス権がないため、管理者としてのアカウントで実行しないと、多くの種類のソフトウェアをインストールできません。最悪の種類のマルウェアは、これらの領域に書き込み、システムに侵入する必要があります。

管理者として実行していない状態で、パスワード、銀行情報、クレジットカード番号を盗むために隠しキーロガーなどをインストールしようとする侵害されたサイトにアクセスすると、そのインストールは失敗する可能性があります。管理者として実行している場合、そのインストールは成功する可能性がはるかに高くなります。Linuxシステムでも同じ原理が当てはまります。

ここで重要なのは、ウイルス対策ソフトウェアが関与しないことです。最近では、ウイルス対策ソフトウェアは、あなたのある最後の防衛線ではなく、あなたの最初の。セキュリティ対策の評価に使用する重要度の順序は次のとおりです。

  1. システム(アプリケーションソフトウェアを含む)にパッチを適用し続ける
  2. 管理者として実行しないでください
  3. 他の安全なインターネット習慣を使用する
  4. ファイアウォールを実行する
  5. 適切なオフラインバックアップを用意する(この場合、オフラインとは「通常のファイルシステムにアクセスできない」ことを意味し、実際にはオンラインサービスを使用することを意味します)
  6. ウイルス対策ソフトウェアを実行する

実際、他の項目を十分に正しく実行している場合、ウイルス対策ソフトウェアはまったく必要ありません。しかし、ここで重要なことは、管理者として実行することはノーノーであるということです。

ありがたいことに、これがWindows 7のデフォルトの状態になりました。アカ​​ウントに管理者権限がある場合でも、「サンドボックス化」されて実行され、オンデマンドで特定のアプリケーションを昇格する権限を与えるだけです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.