ユーザー識別子
出典: フリー百科事典『ウィキペディア(Wikipedia)』
ユーザー識別子(ユーザーしきべつし、User Identifier)とは、UNIX系システムでユーザーを表現(識別)する番号。UIDと略記される。
また、ユーザーはグループに属することができ、グループを識別するグループ識別子(Group Identifier)という番号がある。これをGIDと略記する。
目次 |
[編集] ユーザー識別子
UIDの値の範囲はシステムによって異なるが、最低でも 0 から 32767 の値をとる。また、以下のような制限がある。
- スーパーユーザーのUIDは常にゼロ(0)である。
- "nobody" というユーザーは伝統的に最大UID 32767 に設定されてきた。最近では、nodoby の UID をシステム範囲(後述)か 65530~65535 に設定することが多い。
- 1~100 の UID はシステム用途に確保されている。システムによっては、499 までとか 511 までをシステム用途に推奨していることもある。
ユーザー毎のUID値は /etc/passwd ファイルで参照される。シャドウパスワードファイルやネットワーク・インフォメーション・サービス(NIS)も数値としてのUIDを参照する。ユーザー識別子はUNIXのファイルシステムやプロセスに(所有者を示す情報として)必須の情報である。OSによっては 16ビットのUIDをサポートして 65536 までの番号を使えるが、最近の 32ビット UID をサポートするシステムでは 4,294,967,295 までの値を使用できる。
[編集] グループ識別子
UNIX系システムでは、複数のユーザーを「グループ」に分類することができる。POSIXやUNIX系のファイルパーミッションは3段階(ユーザー、グループ、その他)から構成されている。グループを用いることにより、ディスクやプリンターなどの周辺機器へのアクセスを正式な形で委任することが可能となる。同様の手法でスーパーユーザーが管理タスクを一般ユーザーに委任することも可能にする。これは、Windows NTやその後継OSでの Administrators グループに似ている。
グループ識別子(Group Identifier)はグループを識別する番号である。GIDの値の範囲はシステムによって異なるが、最低でも 0 から 32767 の値をとる。また、以下のような制限がある。
- スーパーユーザーのログイングループは常に GID 0 である。
この数値は /etc/passwd と /etc/group (あるいはそれと同等のファイル)で参照される。シャドーパスワードファイルとNISも数値としてのGIDを参照する。グループ識別子はUNIXのファイルシステムやプロセスに(所有者を示す情報として)必須の情報である。
使用可能なグループ識別子の値の範囲は、それを格納するメモリ領域のサイズに規定される。従来、16ビットの符号付整数が使われていた。符号は必要ない(負の整数はGIDとして使用されない)ため、符号なしの整数が使われるようになっていった(0~65535)。最近のOSでは32ビットの整数が使われているため、その範囲は 0~4,294,967,295 である。
[編集] 一次GID と 補助GID
UNIXシステムでは、各ユーザーは少なくとも1つのグループに属し、そのグループは /etc/passwd内のそのユーザーのエントリ内にGIDの数値で指定される。これを一次グループID(primary group ID)と呼ぶ。ユーザーはそれ以外のグループにも属することができ、/etc/group ファイルでそれを設定する。そのようなグループのIDを補助グループID(supplementary group ID)とか二次グループID(secondary group ID)と呼ぶ。
[編集] 実効グループIDと実グループID
UNIXプロセスは実効GIDと実GIDを持つ。通常これらは同一であるが、setgidプロセスでは異なったGIDとなる。setgidプロセスは特権を持つグループとなって特権の必要な機能を実行し、必要に応じて簡単に非特権グループに戻すことが出来る。
[編集] 関連項目
[編集] 外部リンク
- setuid は慎重に 情報処理推進機構