<chapter id="rmtaskproj.task-37"><title>Administering Projects and
Tasks</title><highlights><para>This chapter describes how to use the project and task facilities of
Solaris resource management.</para><para>The following topics are covered.</para><itemizedlist><listitem><para><olink targetptr="rmtaskproj.task-1" remap="internal">Example Commands and
Command Options</olink></para>
</listitem><listitem><para><olink targetptr="rmtaskproj.task-10" remap="internal">Administering Projects</olink></para>
</listitem>
</itemizedlist><para>For an overview of the projects and tasks facilities, see <olink targetptr="rmtaskproj-1" remap="internal">Chapter&nbsp;2, Projects and Tasks (Overview)</olink>.</para><note><para>If you are using these facilities on a Solaris system with zones
installed, only processes in the same zone will be visible through system
call interfaces that take process IDs when these commands are run in a non-global
zone.</para>
</note>
</highlights><sect1 id="rmtaskproj.task-43"><title>Administering Projects and Tasks (Task
Map)</title><informaltable frame="all"><tgroup cols="3" colsep="1" rowsep="1"><colspec colwidth="33*"/><colspec colwidth="33*"/><colspec colwidth="33*"/><thead><row><entry><para>Task</para>
</entry><entry><para>Description</para>
</entry><entry><para>For Instructions</para>
</entry>
</row>
</thead><tbody><row><entry><para>View examples of commands and options used with projects and tasks.</para>
</entry><entry><para>Display task and project IDs, display various statistics for processes
and projects that are currently running on your system.</para>
</entry><entry><para><olink targetptr="rmtaskproj.task-1" remap="internal">Example Commands and Command Options</olink></para>
</entry>
</row><row><entry><para>Define a project.</para>
</entry><entry><para>Add a project entry to the <filename>/etc/project</filename> file and
alter values for that entry.</para>
</entry><entry><para><olink targetptr="rmtaskproj.task-11" remap="internal">How to Define a Project and View
the Current Project</olink></para>
</entry>
</row><row><entry><para>Delete a project.</para>
</entry><entry><para>Remove a project entry from the <filename>/etc/project</filename> file.</para>
</entry><entry><para><olink targetptr="rmtaskproj.task-19" remap="internal">How to Delete a Project From the
/etc/project File</olink></para>
</entry>
</row><row><entry><para>Validate the <filename>project</filename> file or project database.</para>
</entry><entry><para>Check the syntax of the <filename>/etc/project</filename> file or verify
the uniqueness of the project name and project ID against the external naming
service.</para>
</entry><entry><para><olink targetptr="rmtaskproj.task-42" remap="internal">How to Validate the Contents of
the /etc/project File</olink></para>
</entry>
</row><row><entry><para>Obtain project membership information.</para>
</entry><entry><para>Display the current project membership of the invoking process.</para>
</entry><entry><para><olink targetptr="rmtaskproj.task-25" remap="internal">How to Obtain Project Membership
Information</olink></para>
</entry>
</row><row><entry><para>Create a new task.</para>
</entry><entry><para>Create a new task in a particular project by using the <command>newtask</command> command. </para>
</entry><entry><para><olink targetptr="rmtaskproj.task-26" remap="internal">How to Create a New Task</olink></para>
</entry>
</row><row><entry><para>Associate a running process with a different task and project.</para>
</entry><entry><para>Associate a process number with a new task ID in a specified project.</para>
</entry><entry><para><olink targetptr="rmtaskproj.task-31" remap="internal">How to Move a Running Process
Into a New Task</olink></para>
</entry>
</row><row><entry><para>Add and work with project attributes.</para>
</entry><entry><para>Use the project database administration commands to add, edit, validate,
and remove project attributes.</para>
</entry><entry><para><olink targetptr="rmtaskproj.task-38" remap="internal">Editing and Validating Project
Attributes</olink></para>
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect1><sect1 id="rmtaskproj.task-1"><title>Example Commands and Command Options</title><para>This section provides examples of commands and options used with projects
and tasks.</para><sect2 id="rmtaskproj.task-2"><title>Command Options Used With Projects and
Tasks</title><sect3 id="rmtaskproj.task-3"><title><command>ps</command> Command</title><para>Use the <command>ps</command> command with the <option>o</option> option
to display task and project IDs. For example, to view the project ID, type
the following:</para><screen># <userinput>ps -o user,pid,uid,projid</userinput>
USER PID   UID  PROJID
jtd  89430 124  4113</screen>
</sect3><sect3 id="rmtaskproj.task-4"><title><command>id</command> Command</title><para>Use the <command>id</command> command with the <option>p</option> option
to print the current project ID in addition to the user and group IDs. If
the <parameter>user</parameter> operand is provided, the project associated
with that user's normal login is printed:</para><screen>#  <userinput>id -p</userinput>
uid=124(jtd) gid=10(staff) projid=4113(booksite)</screen>
</sect3><sect3 id="rmtaskproj.task-5"><title><command>pgrep</command> and <command>pkill</command> Commands</title><para>To match only processes with a project ID in a specific list, use the <command>pgrep</command> and <command>pkill</command> commands with the <option>J</option> option:</para><screen># <userinput>pgrep -J <replaceable>projidlist</replaceable></userinput>
# <userinput>pkill -J <replaceable>projidlist</replaceable></userinput></screen><para>To match only processes with a task ID in a specific list, use the <command>pgrep</command> and <command>pkill</command> commands with the <option>T</option> option:</para><screen># <userinput>pgrep -T <replaceable>taskidlist</replaceable></userinput>
# <userinput>pkill -T <replaceable>taskidlist</replaceable></userinput></screen>
</sect3><sect3 id="rmtaskproj.task-6"><title><command>prstat</command> Command</title><para>To display various statistics for processes and projects that are currently
running on your system, use the <command>prstat</command> command with the <option>J</option> option:</para><screen width="100">% <userinput>prstat -J</userinput>
	  PID USERNAME  SIZE   RSS STATE  PRI NICE      TIME  CPU PROCESS/NLWP
 21634 jtd      5512K 4848K cpu0    44    0   0:00.00 0.3% prstat/1
   324 root       29M   75M sleep   59    0   0:08.27 0.2% Xsun/1
 15497 jtd        48M   41M sleep   49    0   0:08.26 0.1% adeptedit/1
   328 root     2856K 2600K sleep   58    0   0:00.00 0.0% mibiisa/11
  1979 jtd      1568K 1352K sleep   49    0   0:00.00 0.0% csh/1
  1977 jtd      7256K 5512K sleep   49    0   0:00.00 0.0% dtterm/1
   192 root     3680K 2856K sleep   58    0   0:00.36 0.0% automountd/5
  1845 jtd        24M   22M sleep   49    0   0:00.29 0.0% dtmail/11
  1009 jtd      9864K 8384K sleep   49    0   0:00.59 0.0% dtwm/8
   114 root     1640K  704K sleep   58    0   0:01.16 0.0% in.routed/1
   180 daemon   2704K 1944K sleep   58    0   0:00.00 0.0% statd/4
   145 root     2120K 1520K sleep   58    0   0:00.00 0.0% ypbind/1
   181 root     1864K 1336K sleep   51    0   0:00.00 0.0% lockd/1
   173 root     2584K 2136K sleep   58    0   0:00.00 0.0% inetd/1
   135 root     2960K 1424K sleep    0    0   0:00.00 0.0% keyserv/4
PROJID    NPROC  SIZE   RSS MEMORY      TIME  CPU PROJECT
    10       52  400M  271M    68%   0:11.45 0.4% booksite
     0       35  113M  129M    32%   0:10.46 0.2% system

Total: 87 processes, 205 lwps, load averages: 0.05, 0.02, 0.02</screen><para>To display various statistics for processes and tasks that are currently
running on your system, use the <command>prstat</command> command with the <option>T</option> option:</para><screen width="100">% <userinput>prstat -T</userinput>
   PID USERNAME  SIZE   RSS STATE  PRI NICE      TIME  CPU PROCESS/NLWP
 23023 root       26M   20M sleep   59    0   0:03:18 0.6% Xsun/1
 23476 jtd        51M   45M sleep   49    0   0:04:31 0.5% adeptedit/1
 23432 jtd      6928K 5064K sleep   59    0   0:00:00 0.1% dtterm/1
 28959 jtd        26M   18M sleep   49    0   0:00:18 0.0% .netscape.bin/1
 23116 jtd      9232K 8104K sleep   59    0   0:00:27 0.0% dtwm/5
 29010 jtd      5144K 4664K cpu0    59    0   0:00:00 0.0% prstat/1
   200 root     3096K 1024K sleep   59    0   0:00:00 0.0% lpsched/1
   161 root     2120K 1600K sleep   59    0   0:00:00 0.0% lockd/2
   170 root     5888K 4248K sleep   59    0   0:03:10 0.0% automountd/3
   132 root     2120K 1408K sleep   59    0   0:00:00 0.0% ypbind/1
   162 daemon   2504K 1936K sleep   59    0   0:00:00 0.0% statd/2
   146 root     2560K 2008K sleep   59    0   0:00:00 0.0% inetd/1
   122 root     2336K 1264K sleep   59    0   0:00:00 0.0% keyserv/2
   119 root     2336K 1496K sleep   59    0   0:00:02 0.0% rpcbind/1
   104 root     1664K  672K sleep   59    0   0:00:03 0.0% in.rdisc/1
TASKID    NPROC  SIZE   RSS MEMORY      TIME  CPU PROJECT                     
   222       30  229M  161M    44%   0:05:54 0.6% group.staff                 
   223        1   26M   20M   5.3%   0:03:18 0.6% group.staff                 
    12        1   61M   33M   8.9%   0:00:31 0.0% group.staff                 
     1       33   85M   53M    14%   0:03:33 0.0% system                      

Total: 65 processes, 154 lwps, load averages: 0.04, 0.05, 0.06	</screen><note><para>The <option>J</option> and <option>T</option> options cannot be
used together.</para>
</note>
</sect3>
</sect2><sect2 id="rmtaskproj.task-7"><title>Using <command>cron</command> and <command>su</command> With Projects and Tasks</title><sect3 id="rmtaskproj.task-8"><title><command>cron</command> Command</title><para>The <command>cron</command> command issues a <literal>settaskid</literal> to
ensure that each <command>cron</command>, <command>at</command>, and <command>batch</command> job executes in a separate task, with the appropriate default project
for the submitting user. The <command>at</command> and <command>batch</command> commands
also capture the current project ID, which ensures that the project ID is
restored when running an <command>at</command> job.</para>
</sect3><sect3 id="rmtaskproj.task-9"><title><command>su</command> Command</title><para>The <command>su</command> command joins the target user's default project
by creating a new task, as part of simulating a login.</para><para>To switch the user's default project by using the <command>su</command> command,
type the following:</para><screen># <userinput>su <replaceable>user</replaceable></userinput></screen>
</sect3>
</sect2>
</sect1><sect1 id="rmtaskproj.task-10"><title>Administering Projects</title><task id="rmtaskproj.task-11"><title>How to Define a Project and View the
Current Project</title><tasksummary><para>This example shows how to use the <command>projadd</command> command
to add a project entry and the <command>projmod</command> command to alter
that entry.</para>
</tasksummary><procedure><step id="rmtaskproj.task-step-13"><para>Become superuser or assume an equivalent
role.</para><para>Roles contain authorizations and privileged commands. For
more information about roles, see <olink targetdoc="sysadv1" targetptr="smcover-95" remap="external"><citetitle remap="section">Using the Solaris Management Tools With RBAC (Task Map)</citetitle> in <citetitle remap="book">System Administration Guide: Basic Administration</citetitle></olink>.</para>
</step><step id="rmtaskproj.task-step-14"><para>View the default <filename>/etc/project</filename> file
on your system by using <command>projects</command> <option>l</option>.</para><screen># <userinput>projects -l</userinput>
system:0::::
user.root:1::::
noproject:2::::
default:3::::
group.staff:10::::system
        projid : 0
        comment: ""
        users  : (none)
        groups : (none)
        attribs: 
user.root
        projid : 1
        comment: ""
        users  : (none)
        groups : (none)
        attribs: 
noproject
        projid : 2
        comment: ""
        users  : (none)
        groups : (none)
        attribs: 
default
        projid : 3
        comment: ""
        users  : (none)
        groups : (none)
        attribs: 
group.staff
        projid : 10
        comment: ""
        users  : (none)
        groups : (none)
        attribs: </screen>
</step><step id="rmtaskproj.task-step-15"><para>Add a project with the name <replaceable>booksite</replaceable>. Assign the project to a user who is named <replaceable>mark</replaceable> with project ID number <replaceable>4113</replaceable>.</para><screen># <userinput>projadd -U mark -p 4113 booksite</userinput></screen>
</step><step id="rmtaskproj.task-step-16"><para>View the <filename>/etc/project</filename> file
again.</para><screen># <userinput>projects -l</userinput>
system
        projid : 0
        comment: ""
        users  : (none)
        groups : (none)
        attribs: 
user.root
        projid : 1
        comment: ""
        users  : (none)
        groups : (none)
        attribs: 
noproject
        projid : 2
        comment: ""
        users  : (none)
        groups : (none)
        attribs: 
default
        projid : 3
        comment: ""
        users  : (none)
        groups : (none)
        attribs: 
group.staff
        projid : 10
        comment: ""
        users  : (none)
        groups : (none)
        attribs: 
booksite
        projid : 4113
        comment: ""
        users  : mark
        groups : (none)
        attribs: </screen>
</step><step id="rmtaskproj.task-step-17"><para>Add a comment that describes the
project in the comment field.</para><screen># <userinput>projmod -c `Book Auction Project' booksite</userinput></screen>
</step><step id="rmtaskproj.task-step-18"><para>View the changes in the <filename>/etc/project</filename> file.</para><screen># <userinput>projects -l</userinput>
system
        projid : 0
        comment: ""
        users  : (none)
        groups : (none)
        attribs: 
user.root
        projid : 1
        comment: ""
        users  : (none)
        groups : (none)
        attribs: 
noproject
        projid : 2
        comment: ""
        users  : (none)
        groups : (none)
        attribs: 
default
        projid : 3
        comment: ""
        users  : (none)
        groups : (none)
        attribs: 
group.staff
        projid : 10
        comment: ""
        users  : (none)
        groups : (none)
        attribs: 
booksite
        projid : 4113
        comment: "Book Auction Project"
        users  : mark
        groups : (none)
        attribs: </screen>
</step>
</procedure><taskrelated role="see-also"><para>To bind projects, tasks, and processes to a pool, see <olink targetptr="rmpool.task-41" remap="internal">Setting Pool Attributes and Binding to a Pool</olink>.</para>
</taskrelated>
</task><task id="rmtaskproj.task-19"><title>How to Delete a Project From the <filename>/etc/project</filename> File</title><tasksummary><para>This example shows how to use the <command>projdel</command> command
to delete a project.</para>
</tasksummary><procedure><step id="rmtaskproj.task-step-21"><para>Become superuser or assume an equivalent
role.</para><para>Roles contain authorizations and privileged commands. For
more information about roles, see <olink targetdoc="sysadv1" targetptr="smcover-95" remap="external"><citetitle remap="section">Using the Solaris Management Tools With RBAC (Task Map)</citetitle> in <citetitle remap="book">System Administration Guide: Basic Administration</citetitle></olink>.</para>
</step><step id="rmtaskproj.task-step-22"><para>Remove the project <replaceable>booksite</replaceable> by using the <command>projdel</command> command.</para><screen># <userinput>projdel <replaceable>booksite</replaceable></userinput></screen>
</step><step id="rmtaskproj.task-step-23"><para>Display the <filename>/etc/project</filename> file.</para><screen># <userinput>projects -l</userinput>
system
        projid : 0
        comment: ""
        users  : (none)
        groups : (none)
        attribs: 
user.root
        projid : 1
        comment: ""
        users  : (none)
        groups : (none)
        attribs: 
noproject
        projid : 2
        comment: ""
        users  : (none)
        groups : (none)
        attribs: 
default
        projid : 3
        comment: ""
        users  : (none)
        groups : (none)
        attribs: 
group.staff
        projid : 10
        comment: ""
        users  : (none)
        groups : (none)
        attribs: </screen>
</step><step id="rmtaskproj.task-step-24"><para>Log in as user <replaceable>mark</replaceable> and
type <command>projects</command> to view the projects that are assigned to
this user.</para><screen># <userinput>su - mark</userinput>
# <userinput>projects</userinput>
default</screen>
</step>
</procedure>
</task><sect2 id="rmtaskproj.task-42"><title>How to Validate the Contents of the <filename>/etc/project</filename> File</title><para>If no editing options are given, the <command>projmod</command> command
validates the contents of the <command>project</command> file.</para><para>To validate a NIS map, type the following:</para><screen># <userinput>ypcat project | projmod -f &mdash;</userinput></screen><para>To check the syntax of the <filename>/etc/project</filename> file, type
the following:</para><screen># <userinput>projmod -n</userinput></screen>
</sect2><sect2 id="rmtaskproj.task-25"><title>How to Obtain Project Membership Information</title><para>Use the <command>id</command> command with the <option>p</option> flag
to display the current project membership of the invoking process.</para><screen>$ <userinput>id -p</userinput>
uid=100(mark) gid=1(other) projid=3(default)</screen>
</sect2><task id="rmtaskproj.task-26"><title>How to Create a New Task</title><procedure><step id="rmtaskproj.task-step-28"><para>Log in as a member of the destination
project, <replaceable>booksite</replaceable> in this example.</para>
</step><step id="rmtaskproj.task-step-29"><para>Create a new task in the <replaceable>booksite</replaceable> project by using the <command>newtask</command> command with
the <option>v</option> (verbose) option to obtain the system task ID.</para><screen>machine% <userinput>newtask -v -p booksite</userinput>
16</screen><para>The execution of <command>newtask</command> creates a new task in the
specified project, and places the user's default shell in this task.</para>
</step><step id="rmtaskproj.task-step-30"><para>View the current project membership
of the invoking process.</para><screen>machine% <userinput>id -p</userinput>
uid=100(mark) gid=1(other) projid=4113(booksite)</screen><para>The process is now a member of the new project.</para>
</step>
</procedure>
</task><task id="rmtaskproj.task-31"><title>How to Move a Running Process Into a
New Task</title><tasksummary><para>This example shows how to associate a running process with a different
task and new project. To perform this action, you must either be superuser,
or be the owner of the process and be a member of the new project.</para>
</tasksummary><procedure><step id="rmtaskproj.task-step-33"><para>Become superuser or assume an equivalent
role.</para><para>Roles contain authorizations and privileged commands. For
more information about roles, see <olink targetdoc="sysadv1" targetptr="smcover-95" remap="external"><citetitle remap="section">Using the Solaris Management Tools With RBAC (Task Map)</citetitle> in <citetitle remap="book">System Administration Guide: Basic Administration</citetitle></olink>.</para><note><para>If you are the owner of the process or a member of the new project,
you can skip this step.</para>
</note>
</step><step id="rmtaskproj.task-step-34"><para>Obtain the process ID of the <replaceable>book_catalog</replaceable> process.</para><screen># <userinput>pgrep book_catalog</userinput>
	8100</screen>
</step><step id="rmtaskproj.task-step-35"><para>Associate process <replaceable>8100</replaceable> with
a new task ID in the <replaceable>booksite</replaceable> project.</para><screen># <userinput>newtask -v -p booksite -c 8100</userinput>
	17</screen><para>The <option>c</option> option specifies that <command>newtask</command> operate
on the existing named process.</para>
</step><step id="rmtaskproj.task-step-36"><para>Confirm the task to process ID mapping.</para><screen># <userinput>pgrep -T 17</userinput>
	8100</screen>
</step>
</procedure>
</task>
</sect1><sect1 id="rmtaskproj.task-38"><title>Editing and Validating Project Attributes</title><para>You can use the <command>projadd</command> and <command>projmod</command> project
database administration commands to edit project attributes.</para><para>The <option>K</option> option specifies a replacement list of attributes.
Attributes are delimited by semicolons (<literal>;</literal>). If the <option>K</option> option
is used with the <option>a</option> option, the attribute or attribute value
is added. If the <option>K</option> option is used with the <option>r</option> option,
the attribute or attribute value is removed. If the <option>K</option> option
is used with the <option>s</option> option, the attribute or attribute value
is substituted.</para><task id="fhzui"><title>How to Add Attributes and Attribute Values to Projects</title><tasksummary><para>Use the <command>projmod</command> command with the <option>a</option> and <option>K</option> options to add values to a project attribute. If the attribute
does not exist, it is created. </para>
</tasksummary><procedure><step><para>Become superuser or assume an equivalent role.</para><para>Roles
contain authorizations and privileged commands. For more information about
roles, see <olink targetdoc="sysadv1" targetptr="smcover-95" remap="external"><citetitle remap="section">Using the Solaris Management Tools With RBAC (Task Map)</citetitle> in <citetitle remap="book">System Administration Guide: Basic Administration</citetitle></olink>.</para>
</step><step><para>Add a <literal>task.max-lwps</literal> resource control attribute
with no values in the project <replaceable>myproject</replaceable>. A task
entering the project has only the system value for the attribute.</para><screen># <userinput>projmod -a -K task.max-lwps myproject</userinput></screen>
</step><step><para>You can then add a value to <literal>task.max-lwps</literal> in
the project <replaceable>myproject</replaceable>. The value consists of a
privilege level, a threshold value, and an action associated with reaching
the threshold.</para><screen># <userinput>projmod -a -K "task.max-lwps=(priv,100,deny)" myproject</userinput></screen>
</step><step><para>Because resource controls can have multiple values, you can add
another value to the existing list of values by using the same options.</para><screen># <userinput>projmod -a -K "task.max-lwps=(priv,1000,signal=KILL)" myproject</userinput></screen><para>The multiple values are separated by commas. The <literal>task.max-lwps</literal> entry
now reads:</para><screen>task.max-lwps=(priv,100,deny),(priv,1000,signal=KILL)</screen>
</step>
</procedure>
</task><task id="fhzuk"><title>How to Remove Attribute Values From Projects</title><tasksummary><para>This procedure uses the values:</para><screen>task.max-lwps=(priv,100,deny),(priv,1000,signal=KILL)</screen>
</tasksummary><procedure><step><para>Become superuser or assume an equivalent role.</para><para>Roles
contain authorizations and privileged commands. For more information about
roles, see <olink targetdoc="sysadv1" targetptr="smcover-95" remap="external"><citetitle remap="section">Using the Solaris Management Tools With RBAC (Task Map)</citetitle> in <citetitle remap="book">System Administration Guide: Basic Administration</citetitle></olink>.</para>
</step><step><para>To remove an attribute value from the resource control <literal>task.max-lwps</literal> in the project <replaceable>myproject</replaceable>, use the <command>projmod</command> command with the <option>r</option> and <option>K</option> options.</para><screen># <userinput>projmod -r -K "task.max-lwps=(priv,100,deny)" myproject</userinput></screen><para>If <literal>task.max-lwps</literal> has multiple values, such as:</para><screen>task.max-lwps=(priv,100,deny),(priv,1000,signal=KILL)</screen><para>The first matching value would be removed. The result would then be:</para><screen>task.max-lwps=(priv,1000,signal=KILL)</screen>
</step>
</procedure>
</task><task id="fhzuh"><title>How to Remove a Resource Control Attribute From a
Project</title><tasksummary><para>To remove the resource control <literal>task.max-lwps</literal> in the
project <replaceable>myproject</replaceable>, use the <command>projmod</command> command
with the <option>r</option> and <option>K</option> options.</para>
</tasksummary><procedure><step><para>Become superuser or assume an equivalent role.</para><para>Roles
contain authorizations and privileged commands. For more information about
roles, see <olink targetdoc="sysadv1" targetptr="smcover-95" remap="external"><citetitle remap="section">Using the Solaris Management Tools With RBAC (Task Map)</citetitle> in <citetitle remap="book">System Administration Guide: Basic Administration</citetitle></olink>.</para>
</step><step><para>Remove the attribute <literal>task.max-lwps</literal> and all
of its values from the project <replaceable>myproject</replaceable>:</para><screen># <userinput>projmod -r -K task.max-lwps myproject</userinput></screen>
</step>
</procedure>
</task><task id="figru"><title>How to Substitute Attributes and Attribute Values
for Projects</title><tasksummary><para>To substitute a different value for the attribute <literal>task.max-lwps</literal> in
the project <replaceable>myproject</replaceable>, use the <command>projmod</command> command
with the <option>s</option> and <option>K</option> options. If the attribute
does not exist, it is created.</para>
</tasksummary><procedure><step><para>Become superuser or assume an equivalent role.</para><para>Roles
contain authorizations and privileged commands. For more information about
roles, see <olink targetdoc="sysadv1" targetptr="smcover-95" remap="external"><citetitle remap="section">Using the Solaris Management Tools With RBAC (Task Map)</citetitle> in <citetitle remap="book">System Administration Guide: Basic Administration</citetitle></olink>.</para>
</step><step><para>Replace the current <literal>task.max-lwps</literal> values with
the new values shown:</para><screen># <userinput>projmod -s -K "task.max-lwps=(priv,100,none),(priv,120,deny)" myproject</userinput></screen><para>The result would be:</para><screen>task.max-lwps=(priv,100,none),(priv,120,deny)</screen>
</step>
</procedure>
</task><task id="figsk"><title>How to Remove the Existing Values for a Resource Control
Attribute</title><procedure><step><para>Become superuser or assume an equivalent role.</para><para>Roles
contain authorizations and privileged commands. For more information about
roles, see <olink targetdoc="sysadv1" targetptr="smcover-95" remap="external"><citetitle remap="section">Using the Solaris Management Tools With RBAC (Task Map)</citetitle> in <citetitle remap="book">System Administration Guide: Basic Administration</citetitle></olink>.</para>
</step><step><para>To remove the current values for <literal>task.max-lwps</literal> from
the project <replaceable>myproject</replaceable>, type:</para><screen># <userinput>projmod -s -K task.max-lwps myproject</userinput></screen>
</step>
</procedure>
</task>
</sect1>
</chapter>