2016.LinuxのいろいろなIDについてまとめてみますー。全てのグループがGIDを持っています。全てのユーザは少なくとも1つのグループに所属する必要があります。ユーザの所属するメインのグループは/etc/passwdで定義され、それ以外のグループは/etc/groupに記載されます。全てのプロセス(デーモンも、GUIプロセスも、カーネルも)はプロセスIDを持っています。プロセスが停止すると、PIDは開放され、他のプロセスが同じIDを使えるようになります。全てのプロセスがIDを持つのと同じように、全てのスレッドもIDを持ちます。全てのプロセスは、親プロセスのPIDと同じ番号を、PPIDとして持ちます。PPIDは、そのプロセスがどの親プロセスから起動されたか特定するのに役立ちます。全てのユーザはUIDを持っています。rootユーザのUIDは常に0です。UIDは/etc/passwdに格納されています。プロセスやユーザが何かオブジェクトにアクセスしたり、作成しようとした時、カーネルは、そのプロセスやユーザがアクションに必要な権限を持っているか、EUIDでチェックします。殆どの場合、EUIDはUIDと同じですが、異なる場合があります。一般ユーザがrootユーザの権限が必要なコマンドを実行しようとした時、(許されていれば、)特別な関数(「sudo」など)を使ってユーザの権限を一時的に、昇格させることができます。ユーザは、ログイン中にUIDを変えることはできませんが、EUIDを変えることはできるのです(許されていれば)。UIDはユーザやプロセスを特定させるIDで、EUIDは、権限を特定させるIDです。0はrootユーザの権限のことです。ちなみに(なんと)、whoamiコマンドで表示されているのは、UIDに紐づくユーザ名ではなく、EUIDに紐づくユーザ名です。リアルユーザIDはEUIDに似ていますが、プロセスへのシグナル送信などに関係しています。プロセスは、同じRUIDを持つ他のプロセスにのみ、シグナルを送ることができます。ユーザがプログラムを起動した時は、プログラムはユーザと同じRUIDを持ちます。RUIDはUIDと同じ値になるので、リアルユーザIDをと名付けられています。RUIDは変更できません。EUIDを、権限を持っているユーザのIDに変更する必要がある場合、RUIDからその情報を取得することがあります。EUIDはRUIDを参照して、一時的に権限を変更することができます。プロセスがたびたび権限を必要とする場合、いちいちRUIDを参照して、権限を変更するのは効率がよくありません。そこで、EUIDはSUIDにIDを保存しておき、後で戻れるようにしておくことができます。デフォルトでは、SUIDはEUIDと同じ値になっていますが、あらかじめSUIDに、別のIDを設定しておくこともできます。リアルグループIDは、役割はリアルユーザIDと同じですが、対象がユーザではなく、グループになります。EGIDも役割はEUIDと同じで、対象がユーザではなく、グループです。セッションIDはコミュニケーションの目的で、認証されたプロセス同士のみが特定のセッションだけで会話するのに使用できます。これは、ウイルスなどがデータのやりとりを盗むのを防ぐのに役立ちます。この「会話」でやりとりできるのは、この会話のためのセッションIDを持ったプロセスだけです。セッションIDは主に、HTTPセッションで利用されます。プロセスグループIDは、同じグループにまとめられたプロセスたちに与えられるIDです。PGIDは、システムコールのsetsid()を使ってグループを生成・宣言したプロセスのPIDと同じになります。/etc/group)で定義・表現はされません。プロセスグループはグループ内のプロセス間のコミュニケーションに必要です。プロセスグループは競合状態や、危険なコミュニケーションによる他の障害なども防ぎます。ファイルシステムの操作をファイルやディレクトリなどに行うときは、EUIDよりFSUIDが使用されます。FSUIDはファイル自身(のパーミッションなど)を変更するのに必要になります。UUIDはさまざまな用途に使われる16バイトの数です。ストレージのユニットのUUIDや、MACアドレスのUUIDとして見たことがあるかもしれません。UUIDは、(ユーザやプログラマーによって書き換えられないかぎり)恒久的で、汎用的な、一意の値を与えるのに必要です。UUIDを生成したいときは、以下のコマンドが便利です。異なるファイルシステムタイプは、それぞれIDを持っています。このIDはファイルシステムをフォーマットする際に、よく使用されます。全てのファイルシステムが一意のIDを使っているわけではありません。ext4やxfsなどは83です。異なるUSBデバイスもIDを持っています。そのリストはこちらです。(PCIデバイスなど)他のタイプのハードウェアもそれぞれのIDを持っていますが、それは、それぞれをずらーとここに書いても退屈なので、、ここでは、カッツアイさせていただきます。所属組織団体の公式見解とは異なる場合があります点、ご了承ください。