PROJADD(8) Maintenance Procedures PROJADD(8)


projadd - administer a new project on the system


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


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.


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.

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

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.


The following operands are supported:

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.


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" \
-K "rcap.max-rss=10GB" \
-K "process.max-file-size=(priv,50MB,deny)" \
-K "task.max-lwps=(priv,100,deny)" salesaudit

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

salesaudit:111:Auditing Project::sales,finance: \
process.max-file-size=(priv,52428800,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


The following exit values are returned:

Successful completion.

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

An invalid argument was provided to an option.

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

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

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

The project is already in use.

Cannot update the /etc/project file.


System project file


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

|Interface Stability | See below. |

Invocation is evolving. Human readable output is unstable.


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)


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.

January 7, 2018 PROJADD(8)