
ルート ユーザーとして直接ログインするよりも、su でルートにログインする方がよいとよく聞きます (もちろん、sudo を使用する方がさらによいという人もいます)。一方が他方よりも優れている理由を私はまったく理解していません。ご意見をお聞かせください。
答え1
推論は、必要な場合にのみ、su
またはsudo
必要なときに行われます。
日常的なタスクのほとんどは、ルート シェルを必要としません。したがって、デフォルトの動作として権限のないシェルを使用し、特別なタスクを実行する必要がある場合にのみルートに昇格するのが良い方法です。
そうすることで、危険なミス(不適切なスクリプト、ワイルドカードの誤った配置など)や、使用するアプリケーションの脆弱性を減らすことができます。特にインターネットに接続するアプリケーションでは、古い格言を参照してください。「ルートとして IRC しないでください」。
sudo
こうした権限の使用を細かく監視および監査できるため、推奨されることが多いです。
これらのプラクティスを遵守することで、リモート ルート ログインを無効にすることもできます。これにより、攻撃者が侵入するハードルが上がります。攻撃者は、「wheel」グループのメンバーであり、理想的には SSH 公開キーによってのみ承認されている通常のユーザー アカウントと、ルート アカウント自体の両方を侵害する必要があるためです。
答え2
攻撃者がまずユーザーを侵害し、その後ルートにエスカレートしない限りルートを侵害できないように、リモートからのルート アクセスを無効にする必要があります。ルート アクセスはコンソールでのみ有効になっています。
さらに、説明責任も生まれます。:)
答え3
主な理由は、監査証跡を作成することです。通常のユーザーとしてシステムにログインしてから su を実行する必要がある場合、特定のアクションの責任者を追跡できます。
答え4
もう 1 つの良い理由: sudo 経由で root に昇格する場合、ユーザーは自分の資格情報を使用して認証するため、必ずしも root パスワードを付与する必要がなく、組織を離れるユーザーをロックダウンしやすくなります。