Linux 管理者としての私の仕事の 1 つは、システムで実行されているアプリケーションのルート権限を削除する何らかのタスクを実行することですか?
はい。それが完了していることを確認するのはあなたの仕事です。アプリケーションが実行しない場合は、アプリケーションが実行していないことに気付き、自分で実行する必要があります。
<ブロック引用>それとも、アプリケーション開発者がこれを行うためのコードを書いていることを確認するだけに頼るのでしょうか?
頼らない アプリケーション開発者に何かをしたことについて。 Linux システム管理者が事実を取得するために利用できるツールはたくさんあります。 アプリケーションが実行時に行っていることの説明
アプリケーションがルート権限を削除し、権限のない権限で動作することを確認するのは、アプリケーションのプログラマの義務です。アプリケーションがこれを行わない場合、アプリケーションの使用を控えるか、開発者にバグレポートを提出するか、コードに必要な変更を自分で実装する以外に、あなたにできることはありません。
一方、それはあなたです 、管理者として、アプリケーションを開始するユーザーを選択します。黄金律は、実行に必要な以上の権限をプロセスに付与しないことです。したがって、非特権ユーザーを作成できます - /etc/passwd
を見てください システム アカウントを把握し、このユーザーとしてアプリケーションを実行します。 (これを手動で行う必要はめったにありません。通常、パッケージ マネージャーを介してソフトウェアをインストールするときに、これはすべて処理されます。)実行すると、それはあなたのコントロール外です。
たとえば、sendmail
の古いバージョン これは、リモートの攻撃者がプログラムの脆弱性の悪用に成功した場合のセキュリティ ホールでした。 sendmail
だったら メール リレーとして独自に実行されているため、非特権ユーザーとして実行できます。
システム管理者としての私たちの仕事は、アプリケーションとユーザーに可能な限り最小限の権限を与えることです (これにより、アプリケーションとユーザーは自分の仕事を行うことができます)。
Tomcat/Java アプリまたは Web ページを展開するユーザー、またはデータベース アクセスを使用してアプリを展開するユーザーは、ルート アクセスの正当な必要性がほとんどまたはほとんどありません。
最近では、ほとんどのフレームワークもデフォルトで root をドロップします。
たとえば、ここで Java フレームワークを使用している開発者の場合、開発者にデプロイ可能な非特権ユーザーへのアクセスを許可し、一部の sudo コマンドはいくつかの重要なサービスの (再) 開始と停止に制限されています。
さらに言えば、運用サーバーを扱うのは開発チームの仕事ではありません。
私の人生経験から、多くの場合、開発チームは自分の仕事をやり遂げることに不安を感じており、システム管理チームからの計画、ガイダンス、および積極的な介入なしには、セキュリティと容量の管理を適切に行うことができません。