75 lines
3.0 KiB
Groff
75 lines
3.0 KiB
Groff
.TH projects 5
|
|
.SH NAME
|
|
\f3projects\f1 \- introduction to IRIX projects
|
|
.SH DESCRIPTION
|
|
Many sites need to be able to charge individual departments separately
|
|
for their usage of a given system.
|
|
Typically, this can be done by billing the total usage for each userid
|
|
on the system to the appropriate department.
|
|
However, some sites may have users that do work for more than one
|
|
department, so billing such a user's total usage to a single
|
|
department would not be appropriate.
|
|
It would be possible to give this sort of user multiple user IDs or
|
|
group IDs, but that can be difficult to manage administratively, and
|
|
besides it would be using a security feature of the operating system
|
|
to accomplish an accounting function.
|
|
Therefore, IRIX has the concept of a \f3project ID\f1.
|
|
.PP
|
|
A project ID is similar to a group ID, with two major exceptions:
|
|
.TP 4
|
|
1.
|
|
The current project ID is associated with an entire array session, not an
|
|
individual process.
|
|
.TP
|
|
2.
|
|
The project ID does not affect access permissions - it is intended mainly
|
|
for accounting purposes, and is in fact reported in extended accounting
|
|
information (see \f2extacct\f1(5) for details).
|
|
.PP
|
|
Users have a default project ID associated with their user IDs.
|
|
Whenever it is necessary for a user to do work that should be billed to a
|
|
different project, the \f2newproj\f1(1) command can be used to switch to
|
|
a new project ID.
|
|
The user's UID and GID are
|
|
unchanged by the newproj command, so access permissisons are unaffected.
|
|
The newproj command starts a new shell and array session so that programs
|
|
running in the background under the old shell will continue to be
|
|
accounted for under the old project ID.
|
|
.PP
|
|
To prevent users from specifying a project for which they are not
|
|
authorized, the \f2newproj\f1 command consults a file (\f3/etc/project\f1)
|
|
that lists the projects that are valid for each user.
|
|
\f3/etc/project\f1 is similar in
|
|
style to \f3/etc/passwd\f1 or \f3/etc/group\f1 (see \f2project\f1(4) for
|
|
details).
|
|
Because the project ID is a numeric value, an additional
|
|
file (\f3/etc/projid\f1, see \f2projid\f1(4))
|
|
is used to correlate ASCII project names, which are used by
|
|
\f3/etc/project\f1, with numeric project IDs.
|
|
A standard default project ID is used when a user cannot be found in these
|
|
files.
|
|
This default value can be changed by modifying the \f3dfltprid\f1
|
|
variable using \f2systune\f1(1).
|
|
.PP
|
|
The standard IRIX utilities for logging in to the system (e.g.\& \f2login\f1,
|
|
\f2rshd\f1) will automatically create a new array session and assign the
|
|
user's default project ID to it.
|
|
User-provided programs that perform a login
|
|
or the moral equivalent can (and should) do the same thing using the
|
|
\f2newarraysess\f1(2) and \f2setprid\f1(2) functions.
|
|
To assist in this, a number of libc functions are provided
|
|
for parsing \f3/etc/project\f1 and \f3/etc/projid\f1;
|
|
see, for example, \f2projid\f1(3C), \f2getdfltprojuser\f1(3C)
|
|
and \f2validateproj\f1(3C) for more details.
|
|
.SH SEE ALSO
|
|
systune(1),
|
|
getprid(2),
|
|
newarraysess(2),
|
|
setprid(2),
|
|
getdfltprojuser(3C),
|
|
getprojuser(3C),
|
|
project(4),
|
|
projid(4),
|
|
array_sessions(5),
|
|
extacct(5).
|