LinuxとUnixシステムでサービスアカウントを使用するのはなぜですか? [コピー]

LinuxとUnixシステムでサービスアカウントを使用するのはなぜですか? [コピー]

LinuxとUnixの非ユーザーサービスアカウントについて質問があります。私たちはLinuxにユーザーアカウントがあることを知っていますが、(非ユーザー)サービスアカウント(デーモン、ニュース、binなど)の用途は何ですか?

$cat /etc/passwd | more 

すべてのユーザーアカウントと非ユーザーアカウントを表示します。

binサービスアカウントが割り当てられたのはなぜですか?これは意図的に設計されていますか?それとも特別な目的があるのでしょうか?

最後の質問

Microsoftオペレーティングシステム環境(Server 2003または2008)でもこれは本当ですか?

答え1

ディストリビューションがデフォルトのユーザーとグループの目的を文書化することを願っています。たとえば、Debian は/usr/share/doc/base-passwd/users-and-groups.*Debian にコンテンツを公開します。クイック検索inurl: "doc/base-passwd"(意図的かどうか)コピーがある場所をオンラインで見つけました。これは

デフォルトでは、彼らはなぜユーザーがいるのかわかりませんbin。 LSBは、従来の理由で含めるユーザーがいると言います。

これらのユーザーはしばしば「ロックされて」ログインできません。ルートはsu(または同等のシステムコールを使用して)これらのいずれかに切り替えることができますが、これはデーモンがそのまま実行される方法です。

次のコマンドを使用して、ユーザーが所有するすべてのファイルを見つけることができます。find / -user USER_NAME

組み込みユーザーとグループは、基本的に次の目的で使用されます。

  • 特定の特殊ファイル(接続されているプリンターのグループ所有/ devファイルlp)へのアクセスを許可します。その後、デーモン(CUPSなど)がこのグループのメンバーになり、アクセス権を取得できます。これはユーザーを対象にすることもできます。たとえば、Debian では、ユーザーをadmグループに追加すると、そのユーザーがシステムログファイルを表示できます。
  • 分離。同じユーザーで実行される 2 つのプログラムは相互に対話できます。たとえば、互いにシグナルを送信し、いくつかのカーネル設定に従って互いにptraceシグナルを送信することもできます(ptraceこれはデバッガの仕組みであり、デフォルトではターゲットを完全に制御できます)。プロセス)。などがその例ですgdmsyslog
  • アクセス制御たとえば、DebianにはCUPSが使用するグループがありますlpadmin。このグループにユーザーを追加すると、Webインターフェイスを介してCUPSを管理できます。

最初の2つはおそらく最も一般的です。

PS:/代わりにとを使うこともできますcat /etc/passwd。これは、代替パスワード/グループストア(LDAPなど)で構成されたシステムで実行されます。cat /etc/groupgetent passwdgetent groups

答え2

これはディストリビューションによって異なりますが、詳しく見ると、「サービス」アカウントが特定のプロセスに対応する傾向があることがわかります。私のArch Linuxサーバーには、ユーザーID "ntp"で実行されるNTPデーモン、ユーザーID "http"で実行されるApache Webサーバー、Postgresqlデータベースプロセス用のユーザーID "postgres"があります。

これは適用するのと同じです。最小権限の原則。プロセスを実行するユーザーは、そのタスクを実行するために必要な最小限の権限のみを持っている必要があります。たとえば、ntpdプロセスはPostgresデータベースに関する重要な情報を読み取ることができず、PostgresプロセスはApache設定ファイルを書き換えることはできません。これは、エラーや意図的な損傷(悪用)によって引き起こされる問題を制限するのに役立ちます。

関連情報