「最高管理者」、つまり削除できない、または他のrootユーザーが権限を変更できないrootユーザーを作成する方法はありますか?

「最高管理者」、つまり削除できない、または他のrootユーザーが権限を変更できないrootユーザーを作成する方法はありますか?

Unixシステムに2人のrootユーザーがいるとします。

これらのルートユーザーの1人がそのユーザーを削除するのを防ぎ、SSHキーアクセスが削除されないように保護できますか?

目的は、ユーザーがrootアクセス権を取得した場合、デフォルトのrootユーザー(つまり、システムの正しい機能を担当するユーザー)を削除できないようにし、各rootユーザーがパッケージをインストールし、ファイル権限を変更するなどのタスクを実行することです。できるようにすることです。 (ただし、「システム管理者」に影響を与えたりシステムから削除したりすることはできません)

特定の権限(rootではなく)を持つユーザーを作成できることはわかっていますが、問題の範囲はシステム全体のアクセス権を持つユーザーです。

答え1

アカウントにシステム全体のアクセス権がある場合、定義に従ってアカウントが選択した操作を実行するのを防ぐことはできません。

理論的には、ルートファイルシステムのすべての変更試行を調停し、/root独自のアンマウントを拒否するカーネルモジュールを作成できますが、それでも解決する方法があります。再起動構造ディスクたとえば、これらのカーネルモジュールは完全にバイパスされます。

別のソリューションは、起動するたびに既知の状態に独自にリセットされるルートファイルシステムを持つ仮想マシンです。これは仮想マシン自体のコンテキスト外で管理できるため、内部アカウントはそれを変更できません。それでも、仮想マシン内のルートアカウントがコンテンツを変更するのを防ぐことはできませんが、次回の再起動時にリセットできるため、これは重要ではありません。

答え2

定義に応じて、rootユーザーは他のユーザーの削除/変更を含むシステムですべての操作を実行できます。

また、各rootユーザーがパッケージのインストール、ファイル権限の変更などを許可します。 (ただし、「sysadmin」に影響を与えたり、システムから削除することはできません)

sudoユーザーがシステムへのフルアクセス権なしでシステムを管理できるようにするシステムを設定する方法を探している可能性があります。

以下を実行する権限を設定できますsudo

  • apt install/update/upgrade/remove/purge
  • chown/chmodただし、特定のディレクトリ/ファイルでのみ機能します。
  • useradd/userdel/groupadd/groupdel

別のアイデアは、仮想化(完全仮想化やLXC / Linuxコンテナなどの軽量仮想化)を使用し、ユーザーがゲストオペレーティングシステムへのフルアクセスを許可することです。

関連情報