要登录到系统,必须为用户指定一个缺省项目。即使用户不在缺省项目中指定的用户或组列表中,此用户仍会自动成为该项目的成员。
由于系统上的每个进程都具有项目成员资格,因此,必须使用一种算法为登录或其他初始进程指定缺省项目。此算法在 getprojent(3C) 手册页中进行了介绍。系统按照顺序步骤确定缺省项目。如果找不到缺省项目,则会拒绝用户的登录或启动进程的请求。
系统按顺序执行以下步骤,以确定用户的缺省项目:
如果用户具有在 /etc/user_attr 扩展用户属性数据库中定义了 project 属性的某个条目,则 project 属性的值即为缺省项目。请参见 user_attr(4) 手册页。
如果 project 数据库中存在名为 user.user-id 的项目,则该项目即为缺省项目。有关更多信息,请参见 project(4) 手册页。
如果 project 数据库中存在名为 group. group-name 的项目,其中 group-name 是在 passwd 文件中指定的用户缺省组的名称,则该项目即为缺省项目。有关 passwd 文件的信息,请参见 passwd(4) 手册页。
如果 project 数据库中存在特殊的项目 default,则此项目即为缺省项目。
此逻辑由 getdefaultproj() 库函数提供。有关更多信息,请参见 getprojent(3PROJECT) 手册页。