'\" te .\" Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved. .TH project 4 "21 May 2015" "SunOS 5.11" "File Formats" .SH NAME project \- project file .SH DESCRIPTION .sp .LP The \fBproject\fR file is a local source of project information. The \fBproject\fR file can be used in conjunction with other project sources, including the \fBNIS\fR maps \fBproject.byname\fR and \fBproject.bynumber\fR and the \fBLDAP\fR database \fBproject\fR. Programs use the \fBgetprojent\fR(3PROJECT) routines to access this information. .sp .LP The \fBproject\fR file contains a one-line entry for each project recognized by the system, of the form: .sp .in +2 .nf \fIprojname\fR:\fIprojid\fR:\fIcomment\fR:\fIuser-list\fR:\fIgroup-list\fR:\fIattributes\fR .fi .in -2 .sp .LP where the fields are defined as: .sp .ne 2 .mk .na \fB\fIprojname\fR\fR .ad .RS 14n .rt The name of the project. The name must be a string that consists of alphanumeric characters, underline (_) characters, hyphens (-), and periods (.). The period, which is reserved for projects with special meaning to the operating system, can be used only in the names of default projects for users. \fIprojname\fR cannot contain colons (:) or newline characters. .RE .sp .ne 2 .mk .na \fB\fIprojid\fR\fR .ad .RS 14n .rt The project's unique numerical \fBID\fR (\fBPROJID\fR) within the system. The maximum value of the \fIprojid\fR field is \fBMAXPROJID\fR. Project IDs below 100 are reserved for the use of the operating system. .RE .sp .ne 2 .mk .na \fB\fIcomment\fR\fR .ad .RS 14n .rt The project's description. .RE .sp .ne 2 .mk .na \fB\fIuser-list\fR\fR .ad .RS 14n .rt 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. .RE .sp .ne 2 .mk .na \fB\fIgroup-list\fR\fR .ad .RS 14n .rt A comma-separated list of groups of users allowed in the project. With the exception of the special projects referred to below, an empty field indicates no groups are allowed. .RE .sp .ne 2 .mk .na \fB\fIattributes\fR\fR .ad .RS 14n .rt A semicolon-separated list of name value pairs. Each pair has the following format: .sp \fIname\fR[=\fIvalue\fR] .sp where \fIname\fR is the arbitrary string specifying the key's name and \fIvalue\fR is the optional key value. An explanation of the valid name-value pair syntax is provided in the \fBUSAGE\fR section of this page. .sp The attributes field can be used to specify the following: .RS +4 .TP .ie t \(bu .el o resource controls. See \fBresource-controls \fR(5). .RE .RS +4 .TP .ie t \(bu .el o A physical memory cap using the \fBproject.max-rss\fR attribute. See \fBrcapd\fR(1M). .RE .RS +4 .TP .ie t \(bu .el o A resource pool binding using the \fBproject.pool\fR attribute. See \fBpoolbind\fR(1M). .RE .RS +4 .TP .ie t \(bu .el o A multi-cpu-binding (MCB) using one of the following attributes. See \fBpbind\fR(1M). .sp .in +2 .nf project.mcb.cpus project.mcb.cores project.mcb.sockets project.mcb.pgs project.mcb.lgroups project.mcb.flags .fi .in -2 .sp .RE See the \fBsetproject\fR(3PROJECT) manpage for a more detailed description of the behavior of these attributes. .sp The attributes specified in the project database are applied to processes joining a project, such when a user logs in and joins his default project, or when the \fBnewtask\fR command is used with the \fB-p\fR option. .sp Modifications to the attributes can be applied to processes already in a project using the \fB-A\fR option to the \fBprojmod\fR command. .sp Resource controls or attributes not understood by the currently running Solaris operating System are ignored. .RE .sp .LP Null entries (empty fields) in the \fIuser-list\fR and \fIgroup-list\fR fields, which normally mean "no users" and "no groups", respectively, have a different meaning in the entries for three special projects, \fBuser.\fIusername\fR\fR, \fBgroup.\fIgroupname\fR\fR, and \fBdefault\fR. See \fBgetprojent\fR(3PROJECT) for a description of these projects. .sp .LP Wildcards can be used in user-list and group-list fields of the project database entry. The asterisk (\fB*\fR), allows all users or groups to join the project. The exclamation mark followed by the asterisk (\fB!*\fR), excludes all users or groups from the project. The exclamation mark (\fB!\fR) followed by a username or groupname excludes the specified user or group from the project. See EXAMPLES. .sp .LP Malformed entries cause routines that read this file to halt, in which case project assignments specified further along are never made. Blank lines are treated as malformed entries in the \fBproject\fR file, and cause \fBgetprojent\fR(3PROJECT) and derived interfaces to fail. .SH EXAMPLES .LP \fBExample 1 \fRSample \fBproject\fR File .sp .LP The following is a sample \fBproject\fR file: .sp .in +2 .nf 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 .fi .in -2 .sp .LP The two line breaks in the line that begins with \fBbeatles\fR are not valid in a \fBproject\fR 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. .sp .LP An example project entry for \fBnsswitch.conf\fR(4) is: .sp .in +2 .nf project: files nis .fi .in -2 .sp .LP With these entries, the project \fBbeatles\fR has members \fBjohn\fR, \fBpaul\fR, \fBgeorge\fR, and \fBringo\fR. All projects listed in the \fBNIS\fR project table are effectively incorporated after the entry for \fBbeatles\fR. .sp .LP The \fBbeatles\fR project has two values set on the \fBtask.max-lwps\fR resource control. When a task in the \fBbeatles\fR project requests (via one of its member processes) its 100th and 110th LWPs, an action associated with the encountered threshold triggers. Upon the request for the 100th LWP, the process making the request is sent the signal \fBSIGTERM\fR 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 the task is made, the requesting process is denied the request--no LWP is created. Since the 110th LWP is never granted, the threshold remains active, and all subsequent requests for an 110th LWP fails. (If LWPs are given up, then subsequent requests succeeds, unless they would take the total number of LWPs across the task over 110.) The \fBprocess.max-file-descriptor\fR resource control is given no values. This means that processes entering this project only has the system resource control value on this \fBrctl\fR. .LP \fBExample 2 \fRProject Entry with Wildcards .sp .LP The following entries use wildcards: .sp .in +2 .nf notroot:200:Shared Project:*,!root:: notused:300:Unused Project::!*: .fi .in -2 .sp .sp .LP In this example, any user except "root" is a member of project \fBnotroot\fR. For the project \fBnotused\fR, all groups are excluded. .SH USAGE .sp .LP The \fBproject\fR 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 EXAMPLES, above, and in \fBresource-controls \fR(5) and \fBgetprojent\fR(3PROJECT). .SH SEE ALSO .sp .LP \fBnewtask\fR(1), \fBprojects\fR(1), \fBpbind\fR(1M), \fBpoolbind\fR(1M), \fBprctl\fR(1), \fBprojmod\fR(1M), \fBrcapd\fR(1M), \fBgetprojent\fR(3PROJECT), \fBsetrctl\fR(2), \fBunistd.h\fR(3HEAD), \fBnsswitch.conf\fR(4), \fBresource-controls \fR(5) .SH NOTES .sp .LP The \fBsolaris.project.assign\fR authorizations allow an administrator to add a user to any project. The \fBsolaris.project.delegate\fR authorization allows an administrator to only add users to the projects of which the administrator is a member. .sp .LP Note that \fBproject 0\fR (\fBsystem\fR) attributes may not be taken into account by the boot services unless a task is explicitly entered or created in this project.