web-dev-qa-db-ja.com

プロセスのpid、ppid、uid、euid、gid、egidの違いは何ですか?

コンテキスト:現在取得していますRubyプロセスID。

Process.pid  #=> 95291

Process.ppid #=> 95201

Process.uid  #=> 501

Process.gid  #=> 20

Process.euid #=> 501

Process.egid #=> 20
31
Joshua Pinter

順番に:

  • pid:は、Process.pidメソッドを呼び出すプロセスのプロセスID(PID)です。
  • ppid:親プロセス(現在のプロセスを生成したプロセス)のPID。たとえば、bashシェルでRuby test.rbを実行すると、そのプロセスのPPIDはBashのPIDになります。
  • uid:プロセスを実行しているユーザーのUNIX ID。
  • euid:プロセスが実行されている有効ユーザーID。 EUIDは、このUIDを持つユーザーが許可されていることに基づいて、プログラムが許可されていることを決定します。通常はuidと同じですが、Sudoなどのコマンドで異なる場合があります。
  • gid:プログラムが実行されているUNIXグループID。
  • egideuidと似ていますが、グループ用です。
30
Linuxios

PID:

Linuxでは、ディスクに格納された実行可能ファイルはプログラムと呼ばれ、メモリにロードされ実行されているプログラムはプロセスと呼ばれます。プロセスが開始されると、システムに対してそのプロセスを識別するプロセスID(PID)と呼ばれる一意の番号が与えられます。たとえば、プロセスを強制終了する必要がある場合、そのPIDで参照できます。

PPID:

一意のプロセスIDに加えて、各プロセスには、どのプロセスがそれを開始したかを伝える親プロセスID(PPID)が割り当てられます。 PPIDは、プロセスの親のPIDです。

たとえば、PIDが101のprocess1がprocess2という名前のプロセスを開始した場合、process2には3240などの一意のPIDが与えられますが、PPIDは101が与えられます。これは親子関係です。 1つの親プロセスが複数の子プロセスを生成し、それぞれが一意のPIDを持ちますが、すべて同じPPIDを共有します。

UID:

Unixライクなオペレーティングシステムは、ユーザーIDと呼ばれる値によってカーネル内のユーザーを識別します。多くの場合、UIDまたはユーザーIDと略されます。 UIDは、GIDおよびその他のアクセス制御基準とともに、ユーザーがアクセスできるシステムリソースを決定するために使用されます。パスワードファイルは、テキスト形式のユーザー名をUIDにマップしますが、カーネルでは、UIDのみが使用されます。

EUID:

プロセスの実効UID(euid)は、ほとんどのアクセスチェックに使用されます。また、そのプロセスによって作成されたファイルの所有者としても使用されます。

GID:

多くの場合GIDと略されるグループ識別子は、特定のグループを表すために使用される数値です。 GIDの値の範囲は、システムごとに異なります。少なくとも、GIDは0〜32,767の範囲で、1つの制限があります。スーパーユーザーのログイングループにはGID 0が必要です。

EGID:

プロセスの有効なGID(egid)もアクセス制御に影響し、使用中の特定のカーネル実装のセマンティクスと、場合によっては使用されるマウントオプションに応じて、ファイルの作成にも影響します。

詳細については、次の記事を参照してください。

  1. PIDおよびPPIDとは?
  2. PID、PPID、TGIDの意味
  3. ユーザー識別子
  4. グループ識別子
14
Bruce Wayne