xref: /illumos-gate/usr/src/man/man8/projadd.8 (revision ed093b41a93e8563e6e1e5dae0768dda2a7bcc27)
te
Copyright (c) 2018 Peter Tribble.
Copyright (c) 2001, Sun Microsystems, Inc. All Rights Reserved.
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.
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.
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]
PROJADD 8 "Jan 7, 2018"
NAME
projadd - administer a new project on the system
SYNOPSIS

projadd [-n] [-f filename] [-p projid [-o]] [-c comment]
 [-U user[,user]...] [-G group[,group]...]
 [-K name[=value[,value]...]]... project
DESCRIPTION

projadd adds a new project entry to the /etc/project file. If the files backend is being used for the project database, the new project is available for use immediately upon the completion of the projadd command.

OPTIONS

The following options are supported: -c comment

Add a project comment. Comments are stored in the project's entry in the /etc/project file. Generally, comments contain a short description of the project and are used as the field for the project's full name. Specify comment as a text string. comment cannot contain a colon (:) or NEWLINE.

-f filename

Specify the project file to modify. If no filename is specified, the system project file, /etc/project, is modified.

-G group[,group]...

Specify a group list for the project.

-K name[=value[,value]...]

Specify an attribute list for the project. Multiple -K options can be specified to set values on multiple keys, such as:

-K key1=value1 -K "key2=(value2a),(value2b)"
Resource control attributes use parentheses to specify values for a key. Because many user shells interpret parentheses as special characters, it is best to enclose an argument to -K that contains parentheses with double quotes, as shown above and in EXAMPLES, below. See resource_controls(7) for a description of the resource controls you can specify for a project.
-n

Syntax check. Check the format of the existing system project file and modifications only. The contents of the existing project file, such as user names, group names, and resources that are specified in the project attributes are not checked.

-o

This option allows the project ID specified by the -p option to be non-unique within the project file.

-p projid

Set the project ID of the new project. Specify projid as a non-negative decimal integer below UID_MAX as defined in limits.h. projid defaults to the next available unique number above the highest number currently assigned. For example, if projids 100, 105, and 200 are assigned, the next default projid is 201. projids between 0-99 are reserved.

-U user[,user]...

Specify a user list for the project.

OPERANDS

The following operands are supported: project

The name of the project to create. The project operand is a string consisting of characters from the set of alphabetic characters, numeric characters, underline (_), and hyphen (-). The period ('.') is reserved for projects with special meaning to the operating system. The first character of the project name must be a letter. An error message is displayed if these restrictions are not met.

EXAMPLES

Example 1 Adding a Project

The following command creates the project salesaudit and sets the resource controls specified as arguments to the -K option.

projadd -p 111 -G sales,finance -c "Auditing Project" \e
 -K "rcap.max-rss=10GB" \e
 -K "process.max-file-size=(priv,50MB,deny)" \e
 -K "task.max-lwps=(priv,100,deny)" salesaudit

This command would produce the following entry in /etc/project:

salesaudit:111:Auditing Project::sales,finance: \e
process.max-file-size=(priv,52428800,deny); \e
rcap.max-rss=10737418240;task.max-lwps=(priv,100,deny)

Note that the preceding would appear as one line in /etc/project.

Comparing the projadd command and resulting output in /etc/project, note the effect of the scaling factor in the resource cap (rcap.max-rss=10GB) and the resource control (process.max-file-size=(priv,50MB,deny)). Modifiers, such as B, KB, and MB, and scaling factors are specified in resource_controls(7).

EXIT STATUS

The following exit values are returned: 0

Successful completion.

2

The command syntax was invalid. A usage message for projadd is displayed.

3

An invalid argument was provided to an option.

4

The projid given with the -p option is already in use.

5

The project files contain an error. See project(5).

6

The project to be added, group, user, or resource does not exist.

9

The project is already in use.

10

Cannot update the /etc/project file.

FILES
/etc/project

System project file

ATTRIBUTES

See attributes(7) for descriptions of the following attributes:

ATTRIBUTE TYPE ATTRIBUTE VALUE
Interface Stability See below.

Invocation is evolving. Human readable output is unstable.

SEE ALSO

projects (1), project (5), attributes (7), resource_controls (7), groupadd (8), groupdel (8), groupmod (8), grpck (8), projdel (8), projmod (8), useradd (8), userdel (8), usermod (8)

NOTES

In case of an error, projadd prints an error message and exits with a non-zero status.

projadd adds a project definition only on the local system. If a network name service is being used to supplement the local /etc/project file with additional entries, projadd cannot change information supplied by the network name service.