常にrootになることの何が問題になっていますか?


83

これは馬鹿げた質問だと感じていますが、これは私がしばらくの間疑問に思っていたものです。

私はVPSを持っていますが、これは私の最初の大きなLinuxベンチャーです。それにアクセスできるのは私だけです。私の質問は、アカウントを作成してsudoアクセスを許可するのではなく、rootとしてログインするだけでは何が問題なのですか?sudoerがrootができることをすべて実行できる場合、違いは何ですか?ハッカーがパスワードを標準の非ルートアカウントにクラックできる場合、ハッカーはsudoコマンドを実行することもできます。


28
また、「Unix Way」に慣れていない場合、これは愚かな質問ではないことをコメントします。最初に新しいLinux管理者として質問をすることを考えた場合、ボーナスを受け取る必要があります。
バートシルバース

そして、いくつかの答えにコメントしたいと思います。特に、「ルートであるものを台無しにすることができる」と言うもの。私はそれがポイントだとは思いません...「rm -rf /」は「sudo rm -rf /」と同じです。ポイントは、「sudo rm」などの機能は動作しないが、「sudo startMyApp on low port」は動作するという点にあります。
ズラトコ

存在しないことの何が問題になっていますか?
オステンダリ

回答:


70

ルートとしてログインしている場合は、ディレクトリをワイプするか、振り返ってみるとシステム上で実際に愚かなことを簡単に行うことができますが、ユーザーとしては通常、いくつかの余分な精神サイクルをあなたが危険なことをする前にタイピングしている。

また、ルート権限としてルートとして実行するプログラム。つまり、誰かまたは何かが、トロイの木馬やその他のマルウェアなど、危険でシステムを損傷させようとするWebサイトを実行/コンパイル/閲覧するようになった場合、 1024以下のTCPポートへのアクセスを含む、必要なことを実行できます(たとえば、知らないうちにシステムをリメーラーに変えることができます)。

基本的に、あなたは自分でログインするのが妨げられるかもしれないというトラブルを求めています。不注意な瞬間にセーフティネットを手に入れて良かった多くの人々を知っています。

編集:また、ルートが最もよく知られているため、スクリプトやハックの標的になりやすいという問題もあります。アカウントを無効にし、代わりにユーザーにsudoの使用を強制するシステムは、sshまたはアカウントへのローカルエクスプロイトからrootをクラックしようとする試みが壁に頭をぶつけていることを意味します。パスワードユーザー名を推測/解読する必要があります。ある程度のあいまいさによるセキュリティですが、ほとんどのスクリプトキディ攻撃を阻止できないと主張するのは困難です。


25
+1-「sudo」を使用すると、ルートとしてプログラムを実行することは明白な行為になります。「ハッカーを止める」ことではなく、非特権ユーザーとして作業する習慣を身に付け、ルート特権の呼び出しを意図した明白な行為にすることです。
エヴァンアンダーソン

2
エヴァンは本当にAIなのだろうかと思い始めています。
バートシルバース

11
須藤も監査証跡を追加します。sudoとして実行すると、誰が、何を、いつ記録される。どのログファイルはディストリビューションによって異なる可能性がありますが、RedHatディストリビューションは/ var / log / secureを使用する傾向があり、Ubuntuは/var/log/auth.logを使用します...これがすべてのDebianベースのディストリビューションに当てはまるかどうかはわかりません。
3dinfluence 2009

3
+1-ものを作成または実行する権利だけでなく、破壊する権利も重要です。ルートとしてログオンする(または他のOSで同等のことをする)ことは、安全性をオフにして銃を持って歩き回るようなものです。あなたはそのトリガーに意図的に触れることは決してないかもしれませんが、あなたはそれをすべて同じように行うと信じていますか?
マキシマスミニマス

3
mh:/ meはカウボーイハットを着用し、ピストルの安全性をはじき、ビールを開け、パンジーについて不平を言って不平を言ってから、rootとしてログインします。
カイルブラント

29

ばかがルートとしてサーバーにログインすることを許可しない場合は、自分でルートとして実行しないでください。あなたが心から手に入れることができない限り、あなたは馬鹿になったことがないと言います。いや、本当に?確信してるの?:)

利点:ルートバカが同時に存在する可能性を減らします。


6
+1-「ベネフィット:ルートとバカが同時に存在する可能性を減らします。」私はこれが大好きです。
エヴァンアンダーソン

誰もがバカだというスコット・アダムスの哲学のために+1。:)はい、それはあなたと私も意味します。
アーニー

絶対に-これは、就職の面接で私の重要な質問の1つです-いつ最後に失敗したのですか?誰もが持っている、ここで「最も面白いsysadmin fubar」などについてのスレッドを読むだけで十分です。誰かが人生で少なくとも一度は本当の愚かな誤りを犯したことを認めないなら、おそらくあなたが彼らと働きたくない少数の理由があります。
トムニュートン

9

主な理由は間違いです。常にrootである場合、単純なタイプミスが実際にシステムを台無しにするかもしれません。rootとしてのみログインするか、sudoを使用してそれを必要とすることを行う場合、危険なミスを犯すリスクを最小限に抑えます。


9

あなたがルートにいるとき、あなたはいつでもすべてにアクセスできるので、あなたはパーミッションについて怠getになります。したがって、すべてにアクセスしたくないシステムに他の誰かを許可した場合、マシンを他の人が安全に使用できるようにすることは突然の困難になります。


5
これは「根腐れ」と呼ばれます。
kmarsh 09

1
私はその用語「根腐れ」が好きです。確かに、常にrootとして実行すると、* nixマシンを、マルチユーザーセキュリティを備えていないWindows 95のような奇妙なマシンに変えることができます。(私は共有会計アプリ上のすべてのユーザー、数年前、SCOマシンを覚えている「それは権限の問題が離れて行かせた」ので、rootとして実行されていた> <ため息。。)
エヴァンアンダーソン

私はそのような説明を得たことを覚えています-彼らはsendmailとともに、rootとして実行されているメーリングリストツールを持っていました。私の返事は、「ハッカーにとっても許可の問題はなくなりました。」でした。
duffbeer703 09

7

ルートとしてログインしないことの背後には、いくつかの重要な原則があります。1)ログイン時にネットワーク経由でルートパスワードが送信されることはありません。3)誤って何か「愚かな」ことをする


3

WindowsのUACに似た、実行しようとしているより高い特権のコマンドを確認するための2回目のチャンスがあるように、あなた自身に対する保護のためです。rm -rf /rootとしてログインしているときなどに、誤って何かをするのは非常に簡単 です。

さらに、トレーサビリティがあります。これは、(理論的には)コマンドを発行する唯一のユーザーの状況では大きな問題ではありませんが、多くの形式の分析にとって重要なコンポーネントである個人をログに記録してトレースバックする機能です。


トレーサビリティは、複数の人がシステム管理者として働いているシステムでは重要です。規制制度によって義務付けられているだけではありません。
APC

金曜日にこれをやった。「/ dump / folder /」を削除する代わりに、フォルダ/を削除しました。悪臭を放つバックスラッシュの1つは、rootとしてログインしない理由を思い出しました。
oneodd1 09

2

違いは主に
、誤って悪いことをすることはできないということです。
その「邪悪な」コードがシステムを引き継ぐことはできません。
注意:邪悪なコードは、必ずしもだれかが既にシステムにアクセスしていることを意味するわけではありません。


最近、悪意のあるコードは通常、すべてのユーザーとして実行できるスパムボットを意味することに気付きました。
アーニー

ウイルス(何かを破壊しようとする)またはルートキットを考える場合、ルートでない場合、マルウェアにとってははるかに複雑です。
StampedeXV

2

可能な限り低いレベルの特権を持つアカウントを常に使用する必要があります。常にrootとして実行すると、悪い習慣や怠を助長し、複数のユーザーと作業しているとき、またはパブリック/セミパブリックネットワークに何かを公開しているときに、人生を不快にします。

また、パスワードクラッキングは1つの妥協シナリオにすぎず、最も一般的なシナリオでもないことに注意してください。ブラウザの脆弱性、またはシステムで実行されているデーモンの脆弱性の犠牲になる可能性が高くなります。

考えずに使用するコードについて考えてください。たとえば、Adobe FlashのLinux移植版は、比較的最近になって初めて使用可能になった蒸し暑い山です。そのコードはどれほど安全だと思いますか?システムを完全に制御できるようにしたいですか?


2

SSHブルートフォース攻撃を防ぐことができます。すべてのUNIXには「ルート」アカウントがあります。ただし、「sudo」ユーザー名がどのようになるかは外部からは明確ではありません。したがって、誰かがブルートフォースで侵入しようとする場合、ルートアカウントがあることを知っており、おそらくそれを試してみるでしょう。ただし、sudoを使用している場合、どこから始めればよいかわかりません。



1

私のアドバイスは、しばらくの間rootを使用することです。なぜそうすべきではないのかすぐにわかるでしょう:)


1

「セキュリティによるセキュリティ」を信用していない場合でも、既存のルートログインの代わりにカスタムログインを使用することには確かに利点があります。したがって、ルートログインを防止するようにSSHを構成することもできます。

他の人も言ったように、rootは確認なしですべてを実行できます。したがって、権限のないユーザーを使用すると、愚かな間違いやタイプミスを防ぐことができます。

複数のユーザーアカウントを支持するもう1つの議論は、異なるユーザーで異なるソフトウェアを実行することです。これを行うと、あるアプリケーションでセキュリティの欠陥が悪用された場合、悪用者は実行中のユーザーがアクセスできるファイルとリソースにしかアクセスできません。

ルートを使用しないための最後のポイント:リソース消費。ルートは、使用できるメモリ、処理時間、ファイルハンドラ、またはディスク容量に制限がありません。多くのファイルシステムには、ルートのみに予約されているデータブロックがあります。したがって、通常のユーザーはディスクを一杯にするためにそれらを使用することはできません。ulimitコマンドを使用して、ユーザーが消費できるメモリとファイルハンドラの数を制限することもできます。ただし、root(またはrootとして実行されているアプリケーション)の場合、この制限を変更することを妨げるものは何もありません。


0

はい、私はあなたに同意します、そして、それは人為的エラーと時には悪意のあるプログラムに対する保護の問題だと思います。私が見たことがない悪いことは、デフォルトのgnomeアカウントとしてrootを使用していることです。
それを行うほとんどのユーザーは、最近LinuxまたはUnixに移行したWindowsユーザーだと思います。管理者特権の使用法をrootにコピーしてみてください。


0

ルートとしてログインしても何も問題はありません。安全なコマンドを入力するだけで筋肉の記憶を発達させ、重大な結果を伴うアクションを実行する際の思考の正確さを促進します。システム管理を改善するために、rootとして作業することを強くお勧めします。

また、次のようなクールなこともできるようになります ping -i 0.2 -c 1000 example.com

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