web-dev-qa-db-ja.com

なぜルートアクセスを削除し、ルートと同じ権限を持つ別のユーザーを作成するのですか?

私はサーバー学習に不慣れで、AWSVPCを始めたばかりです。したがって、私が読んでいる読み物は主にAWSからのものです。

Rootを削除し、rootと同じ権限を持つ別のユーザーを作成するという概念に頭を悩ませることはできません。

  1. ルートをルートとして保持できないのはなぜですか?
  2. Rootとroot権限を持つユーザーはどちらも同じようにログインしませんか?ログインにさまざまな方法を使用したり、ファイルのさまざまなセクションにアクセスしたりするわけではありません。では、なぜrootアクセスを維持することが安全でないと考えられるのでしょうか?
1
Jalene

@gnuuが言うことは正しいですが、私は違う答えをするでしょう。私が与える理由は

  • 複数の人がシステムにアクセスして、他のアカウントでログインするように強制する場合、「root」は監査と説明責任に役立ちます(これは、悪意のないrootユーザーまたはネットワーク認証や外部ロギングを想定しています)

  • これは、最小アクセスの原則のようなベストプラクティスを適用します。これにより、root権限の使用に関連するリスクにユーザーが集中します。また、セットアップ可能なSudoのようなシステムが、リスクを軽減するためにrootアクティビティの限定されたサブセットを実行することも推奨します。

  • これは、可能な限り、rootとして実行されないようにサービスを設定することを推奨します。これはセキュリティ上の利点です。

  • Rootアカウントに対するブルートフォース攻撃を妨げる可能性があります。

(これらすべての落とし穴を回避するrootアクセスでシステムをセットアップすることは完全に可能です)

2
davidgo

通常、rootとしてコマンドを実行できるユーザーは、Sudoなどのプログラムを使用してこれを実行する必要があります。 rootとして実行する必要のないコマンドをrootとして実行すると、システムファイルの管理、パッケージのインストール/アンインストール、/etc/shadowのユーザーパスワードへのアクセス(ハッシュ)、および事実上すべてを実行できるため、非常に危険です。システム上。ただし、あなたが言うように、rootは「削除」されませんが、おそらくPermitRootLoginオプションを介したsshを介してアクセスが無効になります。

さらに、実行しているソフトウェアの一部にエクスプロイトがあり、これにより、たとえば、コンピューター上のリモートシェルにアクセスできるようになります。 rootとして実行している場合は、制限なしでコンピュータ上で何でも実行できます。しかし、通常のユーザーとしては、何も実行できません。デフォルトでSudoは、rootとしてコマンドを実行できるようにパスワードを要求するためです。

rm -rf /--no-preserve-rootを要求するなど、コンピュータを不本意に完全に破壊することを防ぐために、いくつかの保護手段が用意されています。しかし、これらは絶対確実な手段ではありません。rootとして実行していて、誤って/ディレクトリに変更してrm -rf *を実行した場合、問題が発生します。一方、ユーザーアカウントは通常、ホームフォルダーへの書き込みアクセス権しか持たないため、コマンドを終了してファイルを保持する時間を与えることができます。

2
gnuuu