- プロセス ID (pid: Process ID)
- Unix システム上で動作しているプロセスには、0 ~ 30000 までのユニークな pid(プロセス ID)が割り当てられます。 プロセス ID が 1 のものは、最初に立ち上がる init プロセスです(例外として、終了した親プロセスの pid を子プロセスから参照すると 1 が返されます)。
- プロセス・グループ ID (pgid: Process Group ID)
- プロセス・グループとは、1 つ以上のプロセスをまとめて扱う仕組みで、個々のプロセスに対してではなく、プロセス・グループに対してシグナルを送ったりすることができます。
プロセス・グループには 1 つのプロセス・グループ・リーダ(プロセス)が存在し、そのプロセス ID (pid) をプロセス・グループ ID (gpid) として使用します(つまり、プロセス・グループ・リーダの pid と gpid は等しくなります)。
プロセス・グループ・リーダではないプロセスをリーダにするには、
setpgrp
システムコールを使用します。 - ターミナル・グループ (tty group)
- プロセス・グループ・リーダがあるターミナルと関連を持っている場合、そのプロセス・グループのすべてのプロセスは同じターミナル・グループに属します。
ターミナルとの接続が切れた場合、そのターミナル・グループ内のすべてのプロセスに
SIGHUP
シグナルが送られます。 - リアル・ユーザ ID(実ユーザ ID)(ruid: Real User ID)
- ログイン名と 1 対 1 で対応付けられるユーザを識別するための ID です。
/etc/passwd
を見ると、どのように対応付けられているかが分かります。 子プロセスを生成した場合は、親プロセスの ruid が引き継がれます。 - リアル・グループ ID(実グループ ID)(rgid: Real Group ID)
- リアル・ユーザ ID のグループ版と考えれば OK です。
/etc/passwd
を見ると、ログイン名と rgid の対応付けが分かります。 - 実効ユーザ ID/実効グループ ID
- ファイルにアクセスできるかどうかを決定するためのカギとなる ID です。
子プロセスは親プロセスの実効ユーザ ID、実効グループ ID を引き継ぎます。
実行した実行ファイルに
set-user-id
、set-group-id
ビットが設定されている場合は、その実行ファイルの所有者のユーザ ID、グループ ID が実効ユーザ ID、および、実効グループ ID となります。