File Formats project(4)
NAME
project - project file
DESCRIPTION
The project file is a local source of project information.
The project file can be used in conjunction with other pro-
ject sources, including the NIS maps project.byname and
project.bynumber and the LDAP database project. Programs use
the getprojent(3PROJECT) routines to access this informa-
tion.The project file contains a one-line entry for each project
recognized by the system, of the form:projname:projid:comment:user-list:group-list:attributes
where the fields are defined as:projname The name of the project. The name must be a
string that consists of alphanumeric charac-
ters, underline (_) characters, hyphens (-),
and periods (.). The period, which is reservedfor projects with special meaning to the
operating system, can be used only in thenames of default projects for users. projname
cannot contain colons (:) or newline charac-
ters.projid The project's unique numerical ID (PROJID)
within the system. The maximum value of the projid field is MAXPROJID. Project IDs below 100 are reserved for the use of the operating system.comment The project's description.
user-list A comma-separated list of users allowed in the
project. With the exception of the special
projects referred to below, an empty field
indicates no users are allowed. See note about the use of wildcards below.group-list A comma-separated list of groups of users
allowed in the project. With the exception of
the special projects referred to below, an
SunOS 5.11 Last change: 9 May 2005 1
File Formats project(4)
empty field indicates no groups are allowed. See note about the use of wildcards below.attributes A semicolon-separated list of name value
pairs. Each pair has the following format: name[=value] where name is the arbitrary string specifying the key's name and value is the optional keyvalue. An explanation of the valid name-value
pair syntax is provided in the USAGE section
of this page. The expected most frequent useof the attribute field is for the specifica-
tion of resource controls. Seeresource_controls(5) for a description of the
resource controls supported in the current release of the Solaris operating system. You can also use the attribute field for resourcecaps (see rcapd(1M)) and for the project.pool
attribute (see setproject(3PROJECT)).
Null entries (empty fields) in the user-list and group-list
fields, which normally mean "no users" and "no groups", respectively, have a different meaning in the entries forthree special projects, user.username, group.groupname, and
default. See getprojent(3PROJECT) for a description of theseprojects.
Wildcards can be used in user-list and group-list fields of
the project database entry. The asterisk (*), allows all
users or groups to join the project. The exclamation mark
followed by the asterisk (!*), excludes all users or groupsfrom the project. The exclamation mark (!) followed by a
username or groupname excludes the specified user or groupfrom the project. See EXAMPLES, below.
Malformed entries cause routines that read this file tohalt, in which case project assignments specified further
along are never made. Blank lines are treated as malformedentries in the project file, and cause getprojent(3PROJECT)
and derived interfaces to fail.EXAMPLES
Example 1 Sample project File
SunOS 5.11 Last change: 9 May 2005 2
File Formats project(4)
The following is a sample project file:
system:0:System:::user.root:1:Super-User:::
noproject:2:No Project:::
default:3:::: group.staff:10::::beatles:100:The Beatles:john,paul,george,ringo::task.max-lwps=
(privileged,100,signal=SIGTERM),(privileged,110,deny);process.max-file-descriptor
Note that the two line breaks in the line that begins withbeatles are not valid in a project file. They are shown here
only to allow the example to display on a printed or displayed page. Each entry must be on one and only one line.An example project entry for nsswitch.conf(4) is:
project: files nis
With these entries, the project beatles will have members
john, paul, george, and ringo, and all projects listed in
the NIS project table are effectively incorporated after the
entry for beatles.The beatles project has two values set on the task.max-lwps
resource control. When a task in the beatles project
requests (via one of its member processes) its 100th and110th LWPs, an action associated with the encountered thres-
hold triggers. Upon the request for the 100th LWP, the pro-
cess making the request is sent the signal SIGTERM and is granted the request for an additional lightweight process (LWP). At this point, the threshold for 110 LWPs becomes the active threshold. When a request for the 110th LWP in thetask is made, the requesting process is denied the request-
-no LWP will be created. Since the 110th LWP is never
granted, the threshold remains active, and all subsequent requests for an 110th LWP will fail. (If LWPs are given up, then subsequent requests will succeed, unless they would take the total number of LWPs across the task over 110.) Theprocess.max-file-descriptor resource control is given no
values. This means that processes entering this project will
SunOS 5.11 Last change: 9 May 2005 3
File Formats project(4)
only have the system resource control value on this rctl. Example 2 Project Entry with Wildcards The following entries use wildcards: notroot:200:Shared Project:*,!root:: notused:300:Unused Project::!*:In this example, any user except "root" is a member of pro-
ject "notroot". For the project "notused", all groups are
excluded.USAGE
The project database offers a reasonably flexible attribute
mechanism in the final name-value pair field. Name-value
pairs are separated from one another with the semicolon (;) character. The name is in turn distinguished from the (optional) value by the equals (=) character. The value field can contain multiple values separated by the comma (,) character, with grouping support (into further values lists) by parentheses. Each of these values can be composed of the upper and lower case alphabetic characters, the digits '0'through '9', and the punctuation characters hyphen (-), plus
(+), period (.), slash (/), and underscore (_). Example
resource control value specifications are provided in EXAM-
PLES, above, and in resource_controls(5) and
getprojent(3PROJECT).SEE ALSO
newtask(1), projects(1), prctl(1), getprojent(3PROJECT),
setrctl(2), unistd.h(3HEAD), nsswitch.conf(4),resource_controls(5)
SunOS 5.11 Last change: 9 May 2005 4