PROJMOD(8) Maintenance Commands and Procedures PROJMOD(8)
NAME
projmod - modify a project's information on the system
SYNOPSIS
projmod [
-n] [
-A|
-f filename | -]
projmod [
-n] [
-A|
-f filename | -] [
-p projid [
-o]]
[
-c comment] [
-a|
-s|
-r] [
-U user[,
user]...]
[
-G group[,
group]...]
[
-K name[=
value[,
value]...]]...
[
-l new_projectname]
projectDESCRIPTION
The
projmod utility modifies a project's definition on the system.
projmod changes the definition of the specified project and makes the
appropriate project-related system file and file system changes.
OPTIONS
The following options are supported:
-A Apply the project's resource controls,
as defined in the system's project
database, to the project if it is
active.
-a Specify that the users, groups,
attributes, or attribute values
specified by the
-U,
-G or
-K options
should be added to the project, rather
than replacing the existing member or
attribute list.
-c comment Specify
comment as a text string.
Generally,
comment contains a short
description of the project. This
information is stored in the project's
/etc/project entry.
-f filename | -
Specify the project file to modify or
validate or specify input from stdin for
validation. As noted under OPERANDS, if
you do not specify a project in a
projmod command line,
projmod validates
the argument to
-f. If you do not use
this option, the system project file,
/etc/project, is modified.
-G group[,
group]...]fR
Specify a replacement list of member
groups of the project. When used in
conjunction with the
-a or
-r options,
this option specifies a list of groups
to be added or removed from the project.
-K name[=
value[,
value]...]
Specify a replacement list of project
attributes for the project. When used in
conjunction with the
-a,
-r, or
-s options, this option specifies a list of
attribute values to be added, removed,
or replaced in the project. Attributes
must be delimited by semicolons (
;).
Multiple
-K options can be specified to
set, add, remove, or substitute 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.
-l new_projectname Specify the new project name for the
project. The
new_projectname argument is
a string consisting of characters from
the set of alphabetic characters,
numeric characters, period (
.),
underline (
_), and hyphen (
-). The first
character should be alphabetic. An error
message is written if these restrictions
are not met. The project name must also
be unique within the project file.
-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 Specify a new project
ID for the
project. It must be a non-negative
decimal integer less than
MAXUID as
defined in
<sys/param.h>. This value
must be unique within the project file
if the
-o option is not specified.
-r Specify that the users, groups,
attributes, or attribute values
specified by the
-U,
-G or
-K options
should be removed from the project,
rather than replacing the existing
member or attribute list.
-s Specify that the list of attributes
specified by the
-K option should have
their values replaced. If the attributes
do not exist, they are added as if the a
option was used. This option has no
effect the
-U or
-G options.
-U user[,
user]...
Specify a replacement list of member
users of the project. When used in
conjunction with the
-a or
-r options,
this option specifies a list of users to
be added or removed from the project.
OPERANDS
The following operands are supported:
project An existing project name to be modified or displayed.
(none) If no operand is given, the project file is validated
without modifying any project.
EXAMPLES
Example 1: Using the -K Option for Addition of an Attribute Value
Consider the following
project(5) entry:
salesaudit:111:Auditing Project::sales,finance: \
process.max-file-size=(priv,52428800,deny); \
task.max-lwps=(priv,100,deny)
The preceding would appear as one line in
/etc/project. For this and
the following examples, the focus is on the attributes field in the
project entry. That is, the last field, the field following the last
semicolon.
The attributes field for the project
salesaudit lists the following
resource control:
task.max-lwps=(priv,1000,signal=KILL)
The following
projmod command adds an action clause to the preceding
entry:
# projmod -a -K "task.max-lwps=(priv,100,deny)" salesaudit
...with the resulting attributes field in the entry for
salesaudit:
task.max-lwps=(priv,100,deny),(priv,1000,signal=KILL)
Example 2: Using the -K Option for the Substitution of an Attribute
Value
Assume an attributes field in a
project(5) entry for the project
salesaudit that lists the following resource control:
task.max-lwps=(priv,100,deny),(priv,1000,signal=KILL)
The following
projmod command substitutes the action clause specified
in the command for the action clauses in the preceding entry:
# projmod -s -K "task.max-lwps=(priv,500,signal=SIGSTOP)" salesaudit
...with the resulting attributes field in the entry for
salesaudit:
task.max-lwps=(priv,500,signal=SIGSTOP)
Example 3: Using the -K Option for Removal of an Attribute Value
Assume an attributes field in a
project(5) entry for a project
salesaudit that lists the following resource control:
task.max-lwps=(priv,100,deny),(priv,1000,signal=KILL)
The following
projmod command removes the first action clause from
the preceding entry:
# projmod -r -K "task.max-lwps=(priv,100,deny)" salesaudit
...with the resulting attributes field in the entry for
salesaudit:
task.max-lwps=(priv,1000,signal=KILL)
Example 4: Specifying Multiple Attribute Values
Suppose you want to achieve the following resource controls for the
project
salesaudit:
task.max-lwps=(priv,100,deny)
process.max-file-size=(priv,50MB,deny)
The following
projmod command adds these resource controls for
salesaudit:
# projmod -a -K "task.max-lwps=(priv,100,deny)" \
-K "process.max-file-size=(priv,50MB,deny)" salesaudit
...with the resulting attributes field in the entry for
salesaudit:
task.max-lwps=(priv,100,deny);process.max-file-size=(priv,52428800,deny)
In this example, note the effect of the use of the modifier and
scaling factor for the resource control
process.max-file-size. The
specification in
projmod:
"process.max-file-size=(priv,50MB,deny)"
...becomes, in
/etc/project:
process.max-file-size=(priv,52428800,deny)
That is,
50MB is expanded to
52428800. The modifiers, such as MB, and
scaling factors you can use for resource controls are specified in
resource_controls(7).
Example 5: Binding a Pool to a Project
The following command sets the
project.pool attribute for the project
sales.
# projmod -a -K project.pool=salespool sales
Example 6: Evaluating Input from stdin
The following command uses the
-f option without a project name
operand to evaluate the contents of an NIS projects map.
# ypcat project | projmod -f -
EXIT STATUS
In case of an error,
projmod prints an error message and exits with
one of the following values:
The following exit values are returned:
0 Successful completion.
2 The command syntax was invalid. A usage message for
projmod 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 modified, group, user, or resource does not
exist.
9 The project is already in use.
10 Cannot update the
/etc/project file.
FILES
/etc/group System file containing group definitions
/etc/project System project file
/etc/passwd System password file
/etc/shadow System file containing users' encrypted passwords and
related information
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
passwd(5),
project(5),
attributes(7),
resource_controls(7),
groupadd(8),
groupdel(8),
groupmod(8),
projadd(8),
projdel(8),
useradd(8),
userdel(8),
usermod(8)NOTES
The
projmod utility modifies project definitions only in the local
/etc/project file. If a network name service is being used to
supplement the local files with additional entries,
projmod cannot
change information supplied by the network name service. However
projmod verifies the uniqueness of project name and project
ID against the external name service.
January 7, 2018 PROJMOD(8)