web-dev-qa-db-ja.com

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

これはバカな質問だと感じていますが、これはしばらく疑問に思いました。

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

83
ryeguy

Rootとしてログインしている場合は、ディレクトリを簡単にワイプしたり、振り返ってみると指で指を離しただけでシステムの機能が低下したりすることができますが、ユーザーは通常、いくつかの追加のメンタルサイクルを実行する必要があります。危険なことをする前にタイプしています。

また、root権限としてrootとして実行するすべてのプログラム。つまり、誰かまたは何かがあなたに、危険で、システムに損傷を与えたいWebサイトを実行/コンパイル/閲覧させた場合、トロイの木馬や他のマルウェアなどは、あなたの完全なアクセス権を持っています。 TCP 1024未満のポートへのアクセスを含む)(たとえば、知らないうちにシステムをリメーラーに変える可能性があるため)。

基本的には、自分でログインすることで防ぐことができるようなトラブルを求めています。私は多くの人が不注意の瞬間にそのセーフティネットを持っていてうれしかったことを知っています。

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

70

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

メリット:あなたがrootになる可能性を減らしますおよび馬鹿を同時に。

29
Tom Newton

主な理由は間違いです。あなたがいつもrootであるなら、単純なタイプミスは本当にシステムを台無しにするかもしれません。 rootとしてログインするか、Sudoを使用してそれを必要とすることだけを行う場合は、危険なミスをするリスクを最小限に抑えることができます。

9
Kyle Brandt

Rootになると、アクセス許可について怠惰になります。いつでもすべてにアクセスできるので、777や644などに関係なく気になりません。したがって、すべてにアクセスしたくない他のユーザーをシステムに許可すると、突然、他の人がマシンを安全に使用できるようにするのが本当の困難になります。

9
Stu

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

7
Jeff Hengesbach

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

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

3
squillman

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

2
StampedeXV

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

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

考えずに使用するコードについて考えてください。たとえば、Adobe FlashのLinuxポートは、比較的最近になってようやく使用できるようになった大量のうんちです。そのコードはどれほど安全だと思いますか?システムを完全に制御できるようにしたいですか?

2
duffbeer703

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

2
Rory

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

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

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

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

1
rolaf
1
Rajat

私のアドバイスは、しばらくの間rootを使用してみることです。あなたはすぐにあなたがすべきでない理由をすぐに見つけるでしょう:)

1
Chopper3

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

0
Ali Mezgani

Rootとしてログインしても問題はありません。これは、タイプセーフなコマンドのみに筋メモリを発達させるのに役立ち、大きな結果を伴うアクションを実行するときに思考の正確さを促進します。システム管理を改善するために、ルートとして作業することを強くお勧めします。

ping -i 0.2 -c 1000 example.comのようなクールなこともできます

0
lee