projects(5) projects(5) NAME projects - introduction to IRIX projects DESCRIPTION Many sites need to be able to charge individual departments separately for their usage of a given system. Typically, this can be done by billing the total usage for each userid on the system to the appropriate department. However, some sites may have users that do work for more than one department, so billing such a user's total usage to a single department would not be appropriate. It would be possible to give this sort of user multiple user IDs or group IDs, but that can be difficult to manage administratively, and besides it would be using a security feature of the operating system to accomplish an accounting function. Therefore, IRIX has the concept of a project ID. A project ID is similar to a group ID, with two major exceptions: 1. The current project ID is associated with an entire array session, not an individual process. 2. The project ID does not affect access permissions - it is intended mainly for accounting purposes, and is in fact reported in extended accounting information (see extacct(5) for details). Users have a default project ID associated with their user IDs. Whenever it is necessary for a user to do work that should be billed to a different project, the newproj(1) command can be used to switch to a new project ID. The user's UID and GID are unchanged by the newproj command, so access permissions are unaffected. The newproj command starts a new shell and array session so that programs running in the background under the old shell will continue to be accounted for under the old project ID. To prevent users from specifying a project for which they are not authorized, the newproj command consults a file (/etc/project) that lists the projects that are valid for each user. /etc/project is similar in style to /etc/passwd or /etc/group (see project(4) for details). Because the project ID is a numeric value, an additional file (/etc/projid, see projid(4)) is used to correlate ASCII project names, which are used by /etc/project, with numeric project IDs. A standard default project ID is used when a user cannot be found in these files. This default value can be changed by modifying the dfltprid variable using systune(1). The standard IRIX utilities for logging in to the system (e.g. login, rshd) will automatically create a new array session and assign the user's default project ID to it. User-provided programs that perform a login or the moral equivalent can (and should) do the same thing using the newarraysess(2) and setprid(2) functions. To assist in this, a number of libc functions are provided for parsing /etc/project and /etc/projid; see, for example, projid(3C), getdfltprojuser(3C) and validateproj(3C) for more details. SEE ALSO systune(1), getprid(2), newarraysess(2), setprid(2), getdfltprojuser(3C), getprojuser(3C), project(4), projid(4), array_sessions(5), extacct(5). Page 2