rootを使用する代わりにsudo特権をユーザーに割り当てることの実際の利点は何ですか?


25

私はサーバー管理にかなり慣れていないので、多くのサイトで、rootユーザーが作成したユーザーにsudo特権を割り当てることを推奨し、セキュリティ強化のために非常に長いパスワードをrootユーザーに与えています。

ただし、新しく作成されたユーザーがrootユーザーと同じ機能を実行できる場合、これを行うことの実際の利点は何ですか?


7
sudoerはrootができることすべてを行うことはできません。sudoerがsudoにsudoを許可するのはrootのみであり、sudoerはコマンドをsudoする必要があります。最後に、sudoersは自分のユーザーアカウントとしてsudoをsudoします。まず、rootとしてログインする必要がないことを意味し、次に、sudidが誰であるかを確認できるようにします。
キース

回答:


48

sudorootパスワードの引き渡しを使用することにはいくつかの利点があります。順不同:

  • ルートパスワードを提供していない
    一般的なルールとして、誰かがあなたの会社を退職し、彼らがルートパスワードを知っていた場合、それらのパスワードをどこでも変更しなければなりません。適切な構成管理では、これはささいな面倒です。それがなければ、それは大きな雑用です。

  • 王国にキーを渡さない
    sudoので、ユーザーが実行できるコマンドの制限されたリストを指定できるので、AliceはApacheの停止と起動のみを必要とするが、Bobは設定可能な完全なルート権限を必要とする場合それに応じてそれらを。

  • sudoLDAP構成を一元的にサポートする承認を管理できます。つまり、社内のすべてのシステムが中央LDAPサーバーを調べて、誰が何を実行できるかを判断できます。
    誰かを認証(または認証解除)する必要がありますか?LDAPのsudoers構成を変更すると、すべてのシステムが一度に更新されます。

  • 監査証跡あります
    行うことを許可されたユーザーの例外を除いてsudo su -sudo shまたは何か同等のは、sudoどのようなコマンドをどのユーザーRANの監査証跡を生成します。
    (ログに記録されていないルートシェルを自分自身に与えた人のリストも作成されるため、不承認で指を向けることができます。)

  • sudo単にルートよりも適しています 上のみんな濃縮sudoする方法として行うようなものをSUの閲覧者は、それはありませんすべてにとっての良いです。
    アリスは特定のソフトウェアビルドを担当していますが、ボブはビルドスクリプトも実行できるはずです。Bobにsudoersのエントリを与えると、Aliceのユーザーとしてビルドスクリプトを実行できます。(はい、確かに、この特定のケースに対処するためのはるかに良い方法がありますが、の原理はLet user A run a program as user B有用です...)
    また、これを行うと、上記で説明した監査証跡と同じ利点が得られます...


1
非常に有用な答え-私が単一のサーバーを管理する唯一の人になると知っている(そして100%確実であるという意味)場合、別のユーザーにsudo特権を割り当てることには大きな利点がありますか?自分が何かを台無しにするのを防ぐ以外に?
JM4

3
@ JM4一貫性、および大規模な環境で作業している場合の将来の1日の良い習慣。実用的な観点からは、直接rootでログインしてはいけませんあなたは王らしくまずいている何かを固定物理コンソールにしている場合を除き、そのsudosu学術的な区別である-あなたは1つのフープまたはその他を介してジャンプする必要があるとしています。を使用sudoすると、実用的な場合に最小限の特権(私の最後のポイント)の原則を行使する機会が得られ常に真剣に検討する必要があります。
voretaq7

2
また、visudoを使用してsudoersファイルを編集します。
ジャスティンディアリング

3
多くの対話型コマンドを使用すると、ユーザーは監査証跡をバイパスできます。例えば、できるすべてのユーザがsudo viでき:! bash、一度内部のviを。
ディートリッヒエップ

4
@DietrichEppこのNOEXEC場合、タグが役立ちます。
シェーンマッデン

17

主な違いは、ユーザーが自分のパスワードをsudo使用し認証を行うのに対して、suまたは直接ルートログインではルートパスワードが使用されることです。

つまり、rootパスワードをallおよびsundryと共有する必要はなく、将来1人または2人のユーザーのルートアクセスを無効にする必要がある場合は、パスワードを変更する代わりに、無効にすることができます。ルートパスワード。

sudoまた、各ユーザーがrootとして実行できるコマンドを制限できるため、特定のユーザーは、完全なrootアクセスを必要としない場合に、実行する必要のあるタスクのみにアクセスできます。


1
ご協力ありがとうございました。私はあなたのポイントから利益を得ていますが、サーバー上のsshからのrootユーザーのログインを無効にしているので、二重認証ポイントとしてrootユーザーに対する基本ユーザーを実際に見ました。
JM4

4

有効な有効な答えに加えて、rootとしてログインしたユーザーがすべてのコマンドでシステムを破壊する可能性があることを忘れないでください。潜在的に危険なことを行う前にsudoを入力するように強制する場合、少なくとも特定のコマンドを実行する前に二重チェックする必要があることを認識させます。


2

はい、確かに-コントロールとロギングの観点からは、sudoの方がはるかに優れています。

たとえば、ログに記録されたイベントがsuのみである場合、suを実行しています。それ以降はすべてルートになります。また、Unix / Linuxでログを見たことがあれば、rootが大量のことをしていることを知っています。

一方、sudoは、発信元ユーザーのほとんどすべてをログに記録します。


0

sudoを使用すると、悪意のあるユーザーがシステムにアクセスするのが難しくなります。ロックされていないルートアカウントがある場合、悪意のあるユーザーは、開始する前にクラックしたいアカウントのユーザー名を知っています。ルートアカウントがロックされている場合、ユーザーはシステムに侵入するためにユーザー名とパスワードを決定する必要があります。

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