1project(4)                       File Formats                       project(4)
2
3
4

NAME

6       project - project file
7

DESCRIPTION

9       The  project file is a local source of project information. The project
10       file can be used in conjunction with other project  sources,  including
11       the  NIS maps project.byname and project.bynumber and the LDAP database
12       project. Programs use the getprojent(3PROJECT) routines to access  this
13       information.
14
15
16       The  project file contains a one-line entry for each project recognized
17       by the system, of the form:
18
19         projname:projid:comment:user-list:group-list:attributes
20
21
22
23       where the fields are defined as:
24
25       projname      The name of the project. The name must be a  string  that
26                     consists  of alphanumeric characters, underline (_) char‐
27                     acters, hyphens (-), and periods (.). The  period,  which
28                     is  reserved  for  projects  with  special meaning to the
29                     operating system, can  be  used  only  in  the  names  of
30                     default  projects  for  users.  projname  cannot  contain
31                     colons (:) or newline characters.
32
33
34       projid        The project's unique numerical  ID  (PROJID)  within  the
35                     system.  The maximum value of the projid field is MAXPRO‐
36                     JID. Project IDs below 100 are reserved  for the  use  of
37                     the operating system.
38
39
40       comment       The project's description.
41
42
43       user-list     A  comma-separated  list of users allowed in the project.
44                     With the exception of the special  projects  referred  to
45                     below, an empty field indicates no users are allowed. See
46                     note about the use of wildcards below.
47
48
49       group-list    A comma-separated list of groups of users allowed in  the
50                     project.  With  the  exception  of  the  special projects
51                     referred to below, an empty field indicates no groups are
52                     allowed. See note about the use of wildcards below.
53
54
55       attributes    A semicolon-separated list of name value pairs. Each pair
56                     has the following format:
57
58                     name[=value]
59
60                     where name is the arbitrary string specifying  the  key's
61                     name  and value is the optional key value. An explanation
62                     of the valid name-value pair syntax is  provided  in  the
63                     USAGE  section  of  this page. The expected most frequent
64                     use of the attribute field is for  the  specification  of
65                     resource   controls.   See   resource_controls(5)  for  a
66                     description of the resource  controls  supported  in  the
67                     current  release of the Solaris operating system. You can
68                     also use the  attribute  field  for  resource  caps  (see
69                     rcapd(1M))  and  for the project.pool attribute (see set‐
70                     project(3PROJECT)).
71
72
73
74       Null entries (empty fields) in the  user-list  and  group-list  fields,
75       which  normally  mean  "no users" and "no groups", respectively, have a
76       different meaning in the entries for three special projects, user.user‐
77       name,  group.groupname,  and  default.  See  getprojent(3PROJECT) for a
78       description of these projects.
79
80
81       Wildcards can be used in user-list and group-list fields of the project
82       database  entry.  The  asterisk (*), allows all users or groups to join
83       the project. The  exclamation  mark  followed  by  the  asterisk  (!*),
84       excludes all users or groups from the project. The exclamation mark (!)
85       followed by a username or groupname  excludes  the  specified  user  or
86       group from the project. See EXAMPLES, below.
87
88
89       Malformed  entries cause routines that read this file to halt, in which
90       case project assignments specified further along are never made.  Blank
91       lines  are  treated as malformed entries in the project file, and cause
92       getprojent(3PROJECT) and derived interfaces to fail.
93

EXAMPLES

95       Example 1 Sample project File
96
97
98       The following is a sample project file:
99
100
101         system:0:System:::
102         user.root:1:Super-User:::
103         noproject:2:No Project:::
104         default:3::::
105         group.staff:10::::
106         beatles:100:The Beatles:john,paul,george,ringo::task.max-lwps=
107             (privileged,100,signal=SIGTERM),(privileged,110,deny);
108             process.max-file-descriptor
109
110
111
112       Note that the two line breaks in the line that begins with beatles  are
113       not  valid  in  a  project  file. They are shown here only to allow the
114       example to display on a printed or displayed page. Each entry  must  be
115       on one and only one line.
116
117
118
119       An example project entry for nsswitch.conf(4) is:
120
121
122         project: files nis
123
124
125
126       With  these  entries, the project beatles will have members john, paul,
127       george, and ringo, and all projects listed in the NIS project table are
128       effectively incorporated after the entry for beatles.
129
130
131
132       The  beatles  project  has two values set on the task.max-lwps resource
133       control. When a task in the beatles project requests (via  one  of  its
134       member  processes)  its 100th and 110th LWPs, an action associated with
135       the encountered threshold triggers. Upon the request for the 100th LWP,
136       the  process  making  the  request  is  sent  the signal SIGTERM and is
137       granted the request for an additional  lightweight  process  (LWP).  At
138       this  point,  the  threshold for 110 LWPs becomes the active threshold.
139       When a request for the 110th LWP in the task is  made,  the  requesting
140       process  is denied the request--no LWP will be created. Since the 110th
141       LWP is never granted, the threshold remains active, and all  subsequent
142       requests for an 110th LWP will fail. (If LWPs are given up, then subse‐
143       quent requests will succeed, unless they would take the total number of
144       LWPs   across  the  task  over  110.)  The  process.max-file-descriptor
145       resource control is given no values. This means that processes entering
146       this  project  will only have the system resource control value on this
147       rctl.
148
149
150       Example 2 Project Entry with Wildcards
151
152
153       The following entries use wildcards:
154
155
156         notroot:200:Shared Project:*,!root::
157         notused:300:Unused Project::!*:
158
159
160
161
162       In this example, any user except "root" is a member  of  project  "not‐
163       root". For the project "notused", all groups are excluded.
164
165

USAGE

167       The  project  database offers a reasonably flexible attribute mechanism
168       in the final name-value pair field. Name-value pairs are separated from
169       one  another with the semicolon (;) character. The name is in turn dis‐
170       tinguished from the (optional) value by the equals (=)  character.  The
171       value  field  can  contain  multiple  values separated by the comma (,)
172       character, with grouping support (into further values lists) by  paren‐
173       theses.  Each  of  these  values can be composed of the upper and lower
174       case alphabetic characters, the digits '0' through '9', and the punctu‐
175       ation  characters  hyphen  (-),  plus  (+),  period (.), slash (/), and
176       underscore (_). Example resource control value specifications are  pro‐
177       vided  in  EXAMPLES,  above,  and  in  resource_controls(5) and getpro‐
178       jent(3PROJECT).
179

SEE ALSO

181       newtask(1), projects(1),  prctl(1),  getprojent(3PROJECT),  setrctl(2),
182       unistd.h(3HEAD), nsswitch.conf(4), resource_controls(5)
183
184
185
186SunOS 5.11                        9 May 2005                        project(4)
Impressum