8322 nl: misleading-indentation
[unleashed/tickless.git] / usr / src / man / man1m / projmod.1m
blob81a6e13a15da92b756ed2f192ffd1583da3ea222
1 '\" te
2 .\" Copyright (c) 2007, Sun Microsystems, Inc. All Rights Reserved.
3 .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License").  You may not use this file except in compliance with the License.
4 .\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.  See the License for the specific language governing permissions and limitations under the License.
5 .\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE.  If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
6 .TH PROJMOD 1M "Feb 22, 2007"
7 .SH NAME
8 projmod \- modify a project's information on the system
9 .SH SYNOPSIS
10 .LP
11 .nf
12 \fBprojmod\fR [\fB-n\fR] [\fB-A\fR|\fB-f\fR \fIfilename\fR | -]
13 .fi
15 .LP
16 .nf
17 \fBprojmod\fR [\fB-n\fR] [\fB-A\fR|\fB-f\fR \fIfilename\fR | -] [\fB-p\fR \fIprojid\fR [\fB-o\fR]]
18      [\fB-c\fR \fIcomment\fR] [\fB-a\fR|\fB-s\fR|\fB-r\fR] [\fB-U\fR \fIuser\fR [,\fIuser\fR]... ]
19      [\fB-G\fR \fIgroup\fR [,\fIgroup\fR]... ]
20      [ [\fB-K\fR \fIname\fR [=\fIvalue\fR [,\fIvalue\fR]...]...]]
21      [\fB-l\fR \fInew_projectname\fR] \fIproject\fR
22 .fi
24 .SH DESCRIPTION
25 .sp
26 .LP
27 The \fBprojmod\fR utility modifies a project's definition on the system.
28 \fBprojmod\fR changes the definition of the specified project and makes the
29 appropriate project-related system file and file system changes.
30 .SH OPTIONS
31 .sp
32 .LP
33 The following options are supported:
34 .sp
35 .ne 2
36 .na
37 \fB\fB-A\fR\fR
38 .ad
39 .RS 29n
40 Apply the project's resource controls, as defined in the system's project
41 database, to the project if it is active.
42 .RE
44 .sp
45 .ne 2
46 .na
47 \fB\fB-a\fR\fR
48 .ad
49 .RS 29n
50 Specify that the users, groups, attributes, or attribute values specified by
51 the \fB-U\fR, \fB-G\fR or \fB-K\fR options should be added to the project,
52 rather than replacing the existing member or attribute list.
53 .RE
55 .sp
56 .ne 2
57 .na
58 \fB\fB-c\fR \fIcomment\fR\fR
59 .ad
60 .RS 29n
61 Specify \fIcomment\fR as a text string. Generally, \fIcomment\fR contains a
62 short description of the project. This information is stored in the project's
63 \fB/etc/project\fR entry.
64 .RE
66 .sp
67 .ne 2
68 .na
69 \fB\fB-f\fR \fIfilename\fR | -\fR
70 .ad
71 .RS 29n
72 Specify the project file to modify or validate or specify input from stdin for
73 validation. As noted under OPERANDS, if you do not specify a project in a
74 \fBprojmod\fR command line, \fBprojmod\fR validates the argument to \fB-f\fR.
75 If you do not use this option, the system project file, \fB/etc/project\fR, is
76 modified.
77 .RE
79 .sp
80 .ne 2
81 .na
82 \fB\fB-G\fR \fIgroup\fR [,\fIgroup\fR...]\fR
83 .ad
84 .RS 29n
85 Specify a replacement list of member groups of the project. When used in
86 conjunction with the \fB-a\fR or \fB-r\fR options, this option specifies a list
87 of groups to be added or removed from the project.
88 .RE
90 .sp
91 .ne 2
92 .na
93 \fB\fB-K\fR \fIname\fR[=\fIvalue\fR[,\fIvalue\fR...]\fR
94 .ad
95 .RS 29n
96 Specify a replacement list of project attributes for the project. When used in
97 conjunction with the \fB-a\fR, \fB-r\fR, or \fB-s\fR options, this option
98 specifies a list of attribute values to be added, removed, or replaced in the
99 project. Attributes must be delimited by semicolons (\fB;\fR). Multiple
100 \fB-K\fR options can be specified to set, add, remove, or substitute values on
101 multiple keys, such as:
103 .in +2
105 -K \fIkey1\fR=\fIvalue1\fR -K "\fIkey2\fR=(\fIvalue2a\fR),(\fIvalue2b\fR)"
107 .in -2
109 Resource control attributes use parentheses to specify values for a key.
110 Because many user shells interpret parentheses as special characters, it is
111 best to enclose an argument to \fB-K\fR that contains parentheses with double
112 quotes, as shown above and in EXAMPLES, below. See \fBresource_controls\fR(5)
113 for a description of the resource controls you can specify for a project.
117 .ne 2
119 \fB\fB-l\fR \fInew_projectname\fR\fR
121 .RS 29n
122 Specify the new project name for the project. The \fInew_projectname\fR
123 argument is a string consisting of characters from the set of alphabetic
124 characters, numeric characters, period (\fB\&.\fR), underline (\fB_\fR), and
125 hyphen (\fB-\fR). The first character should be alphabetic. An error message is
126 written if these restrictions are not met. The project name must also be unique
127 within the project file.
131 .ne 2
133 \fB\fB-n\fR\fR
135 .RS 29n
136 Syntax check. Check the format of the existing system project file and
137 modifications only. The contents of the existing project file, such as user
138 names, group names, and resources that are specified in the project attributes
139 are not checked.
143 .ne 2
145 \fB\fB-o\fR\fR
147 .RS 29n
148 This option allows the project ID specified by the \fB-p\fR option to be
149 non-unique within the project file.
153 .ne 2
155 \fB\fB-p\fR \fIprojid\fR\fR
157 .RS 29n
158 Specify a new project \fBID\fR for the project. It must be a non-negative
159 decimal integer less than \fBMAXUID\fR as defined in \fBparam.h\fR. This value
160 must be unique within the project file if the \fB-o\fR option is not specified.
164 .ne 2
166 \fB\fB-r\fR\fR
168 .RS 29n
169 Specify that the users, groups, attributes, or attribute values specified by
170 the \fB-U\fR, \fB-G\fR or \fB-K\fR options should be removed from the project,
171 rather than replacing the existing member or attribute list.
175 .ne 2
177 \fB\fB-s\fR\fR
179 .RS 29n
180 Specify that the list of attributes specified by the \fB-K\fR option should
181 have their values replaced. If the attributes do not exist, they are added as
182 if the a option was used. This option has no effect the \fB-U\fR or \fB-G\fR
183 options.
187 .ne 2
189 \fB\fB-U\fR \fIuser\fR [,\fIuser\fR...]\fR
191 .RS 29n
192 Specify a replacement list of member users of the project. When used in
193 conjunction with the \fB-a\fR or \fB-r\fR options, this option specifies a list
194 of users to be added or removed from the project.
197 .SH OPERANDS
200 The following operands are supported:
202 .ne 2
204 \fB\fIproject\fR\fR
206 .RS 11n
207 An existing project name to be modified or displayed.
211 .ne 2
213 \fB\fI(none)\fR\fR
215 .RS 11n
216 If no operand is given, the project file is validated without modifying any
217 project.
220 .SH EXAMPLES
222 \fBExample 1 \fRUsing the \fB-K\fR Option for Addition of an Attribute Value
225 Consider the following \fBproject\fR(4) entry:
228 .in +2
230 salesaudit:111:Auditing Project::sales,finance: \e
231   process.max-file-size=(priv,52428800,deny); \e
232   task.max-lwps=(priv,100,deny)
234 .in -2
238 The preceding would appear as one line in \fB/etc/project\fR. For this and the
239 following examples, the focus is on the attributes field in the \fBproject\fR
240 entry. That is, the last field, the field following the last semicolon.
244 The attributes field for the project \fBsalesaudit\fR lists the following
245 resource control:
248 .in +2
250 task.max-lwps=(priv,1000,signal=KILL)
252 .in -2
256 The following \fBprojmod\fR command adds an action clause to the preceding
257 entry:
260 .in +2
262 # projmod -a -K "task.max-lwps=(priv,100,deny)" salesaudit
264 .in -2
268 \&...with the resulting attributes field in the entry for \fBsalesaudit\fR:
271 .in +2
273 task.max-lwps=(priv,100,deny),(priv,1000,signal=KILL)
275 .in -2
278 \fBExample 2 \fRUsing the \fB-K\fR Option for the Substitution of an Attribute
279 Value
282 Assume an attributes field in a \fBproject\fR(4) entry for the project
283 \fBsalesaudit\fR that lists the following resource control:
286 .in +2
288 task.max-lwps=(priv,100,deny),(priv,1000,signal=KILL)
290 .in -2
294 The following \fBprojmod\fR command substitutes the action clause specified in
295 the command for the action clauses in the preceding entry:
298 .in +2
300 # projmod -s -K "task.max-lwps=(priv,500,signal=SIGSTOP)" salesaudit
302 .in -2
306 \&...with the resulting attributes field in the entry for \fBsalesaudit\fR:
309 .in +2
311 task.max-lwps=(priv,500,signal=SIGSTOP)
313 .in -2
316 \fBExample 3 \fRUsing the \fB-K\fR Option for Removal of an Attribute Value
319 Assume an attributes field in a \fBproject\fR(4) entry for a project
320 \fBsalesaudit\fR that lists the following resource control:
323 .in +2
325 task.max-lwps=(priv,100,deny),(priv,1000,signal=KILL)
327 .in -2
331 The following \fBprojmod\fR command removes the first action clause from the
332 preceding entry:
335 .in +2
337 # projmod -r -K "task.max-lwps=(priv,100,deny)" salesaudit
339 .in -2
343 \&...with the resulting attributes field in the entry for \fBsalesaudit\fR:
346 .in +2
348 task.max-lwps=(priv,1000,signal=KILL)
350 .in -2
353 \fBExample 4 \fRSpecifying Multiple Attribute Values
356 Suppose you want to achieve the following resource controls for the project
357 \fBsalesaudit\fR:
360 .in +2
362 task.max-lwps=(priv,100,deny)
363 process.max-file-size=(priv,50MB,deny)
365 .in -2
369 The following \fBprojmod\fR command adds these resource controls for
370 \fBsalesaudit\fR:
373 .in +2
375 # projmod -a -K "task.max-lwps=(priv,100,deny)" \e
376 -K "process.max-file-size=(priv,50MB,deny)" salesaudit
378 .in -2
382 \&...with the resulting attributes field in the entry for \fBsalesaudit\fR:
385 .in +2
387 task.max-lwps=(priv,100,deny);process.max-file-size=(priv,52428800,deny)
389 .in -2
393 In this example, note the effect of the use of the modifier and scaling factor
394 for the resource control \fBprocess.max-file-size\fR. The specification in
395 \fBprojmod\fR:
398 .in +2
400 "process.max-file-size=(priv,50MB,deny)"
402 .in -2
406 \&...becomes, in \fB/etc/project\fR:
409 .in +2
411 process.max-file-size=(priv,52428800,deny)
413 .in -2
417 That is, \fB50MB\fR is expanded to \fB52428800\fR. The modifiers, such as MB,
418 and scaling factors you can use for resource controls are specified in
419 \fBresource_controls\fR(5).
422 \fBExample 5 \fRBinding a Pool to a Project
425 The following command sets the \fBproject.pool\fR attribute for the project
426 \fBsales\fR.
429 .in +2
431 # projmod -a -K project.pool=salespool sales
433 .in -2
436 \fBExample 6 \fREvaluating Input from \fBstdin\fR
439 The following command uses the \fB-f\fR option without a project name operand
440 to evaluate the contents of an NIS projects map.
443 .in +2
445 # ypcat project | projmod -f -
447 .in -2
449 .SH EXIT STATUS
452 In case of an error, \fBprojmod\fR prints an error message and exits with one
453 of the following values:
456 The following exit values are returned:
458 .ne 2
460 \fB\fB0\fR\fR
462 .RS 6n
463 Successful completion.
467 .ne 2
469 \fB\fB2\fR\fR
471 .RS 6n
472 The command syntax was invalid. A usage message for \fBprojmod\fR is displayed.
476 .ne 2
478 \fB\fB3\fR\fR
480 .RS 6n
481 An invalid argument was provided to an option.
485 .ne 2
487 \fB\fB4\fR\fR
489 .RS 6n
490 The \fIprojid\fR given with the \fB-p\fR option is already in use.
494 .ne 2
496 \fB\fB5\fR\fR
498 .RS 6n
499 The project files contain an error. See \fBproject\fR(4).
503 .ne 2
505 \fB\fB6\fR\fR
507 .RS 6n
508 The project to be modified, group, user, or resource does not exist.
512 .ne 2
514 \fB\fB9\fR\fR
516 .RS 6n
517 The project is already in use.
521 .ne 2
523 \fB\fB10\fR\fR
525 .RS 6n
526 Cannot update the \fB/etc/project\fR file.
529 .SH FILES
531 .ne 2
533 \fB\fB/etc/group\fR\fR
535 .RS 16n
536 System file containing group definitions
540 .ne 2
542 \fB\fB/etc/project\fR\fR
544 .RS 16n
545 System project file
549 .ne 2
551 \fB\fB/etc/passwd\fR\fR
553 .RS 16n
554 System password file
558 .ne 2
560 \fB\fB/etc/shadow\fR\fR
562 .RS 16n
563 System file containing users' encrypted passwords and related information
566 .SH ATTRIBUTES
569 See \fBattributes\fR(5) for descriptions of the following attributes:
574 box;
575 c | c
576 l | l .
577 ATTRIBUTE TYPE  ATTRIBUTE VALUE
579 Interface Stability     See below.
584 Invocation is evolving. Human readable output is unstable.
585 .SH SEE ALSO
588 \fBgroupadd\fR(1M), \fBgroupdel\fR(1M), \fBgroupmod\fR(1M), \fBprojadd\fR(1M),
589 \fBprojdel\fR(1M), \fBuseradd\fR(1M), \fBuserdel\fR(1M), \fBusermod\fR(1M),
590 \fBpasswd\fR(4), \fBproject\fR(4), \fBattributes\fR(5),
591 \fBresource_controls\fR(5)
592 .SH NOTES
595 The \fBprojmod\fR utility modifies project definitions only in the local
596 \fB/etc/project\fR file. If a network name service such as \fBNIS\fR or
597 \fBLDAP\fR is being used to supplement the local files with additional entries,
598 \fBprojmod\fR cannot change information supplied by the network name service.
599 However \fBprojmod\fR verifies the uniqueness of project name and project
600 \fBID\fR against the external name service.