システムにログインするには、そのユーザーにデフォルトのプロジェクトが割り当てられている必要があります。
システム上の各プロセスはプロジェクトのメンバーシップを所有しているため、ログインやその他の初期処理にデフォルトのプロジェクトを割り当てるアルゴリズムが必要です。デフォルトプロジェクトを判定するアルゴリズムは、4 つの手順から成ります。デフォルトプロジェクトが見つからない場合、ユーザーのログインまたはプロセスの開始要求は拒否されます。
システムは、次の手順でユーザーのデフォルトプロジェクトを判定します。
ユーザーが、/etc/user_attr 拡張ユーザー属性データベースで定義されている project 属性のエントリを持っている場合は、その project 属性の値がデフォルトプロジェクトになります (user_attr(4) 参照)。
user.user-id という名前のプロジェクトが project(4) データベースにある場合は、そのプロジェクトがデフォルトプロジェクトになります。
group.group-name という名前のプロジェクトが project データベースにあり、group-name がユーザーのデフォルトのグループ名 (passwd(4) で指定されている) である場合は、そのプロジェクトがデフォルトプロジェクトになります。
project データベースに default という特別なプロジェクトがある場合は、そのプロジェクトがデフォルトプロジェクトになります。
このロジックは getdefaultproj() ライブラリ関数が提供します (getprojent(3PROJECT) 参照)。