=head1 NAME

pts_setfields - Sets privacy flags or quota for a Protection Database entry

=head1 SYNOPSIS

=for html
<div class="synopsis">

B<pts setfields> S<<< B<-nameorid> <I<user or group name or id>>+ >>>
    S<<< [B<-access> <I<set privacy flags>>] >>>
    S<<< [B<-groupquota> <I<set limit on group creation>>] >>>
    S<<< [B<-cell> <I<cell name>>] >>> [B<-noauth>] [B<-localauth>]
    [B<-force>] [B<-help>]

B<pts setf> S<<< B<-na> <I<user or group name or id>>+ >>>
    S<<< [B<-a> <I<set privacy flags>>] >>>
    S<<< [B<-g> <I<set limit on group creation>>] >>> S<<< [B<-c> <I<cell name>>] >>>
    [B<-no>] [B<-l>] [B<-f>] [B<-h>]

=for html
</div>

=head1 DESCRIPTION

The B<pts setfields> command sets the group-creation quota, the privacy
flags, or both, associated with each user, machine, or group entry
specified by the B<-nameorid> argument.

To examine the current quota and privacy flags, use the B<pts examine>
command.

=head1 CAUTIONS

Changing a machine or group's group-creation quota is allowed, but not
recommended. The concept is meaningless for machines and groups, because
it is impossible to authenticate as a group or machine.

Similarly, some privacy flag settings do not have a sensible
interpretation. L<OPTIONS> specifies the appropriate settings.

=head1 OPTIONS

=over 4

=item B<-nameorid> <I<user or group name or id>>+

Specifies the name or AFS UID of each user, the IP address (complete or
wildcard-style) of each machine, or the name or AFS GID of each machine
for which to set privacy flags or group-creation quota. It is acceptable
to mix users, machines, and groups on the same command line, as well as
names (IP addresses for machines) and IDs. Precede the GID of each group
with a hyphen to indicate that it is negative.

=item B<-access> <I<privacy flags>>

Specifies the privacy flags to apply to each entry. Provide a string of
five characters, one for each of the permissions. If this option is
omitted, the current setting remains unchanged.

Set each flag to achieve the desired combination of permissions. If the
following list does not mention a certain setting, it is not
acceptable. For further discussion of the privacy flags, see
L<pts_examine(1)>.

=over 4

=item *

The first flag determines who can use the B<pts examine> command to
display information from a user, machine or group's Protection Database
entry.

=over 4

=item *

Set it to lowercase C<s> to permit the members of the
system:administrators group to display a user, machine, or group entry,
and the associated user to display a user entry.

=item *

Set it to uppercase C<S> to permit anyone who can access the cell's
database server machines to display a user, machine, or group entry.

=back

=item *

The second flag determines who can use the B<pts listowned> command to
list the groups that a user or group owns.

=over 4

=item *

Set it to the hyphen (C<->) to permit the members of the
system:administrators group and a user to list the groups he or she owns,
or to permit the members of the system:administrators group and a group's
owner to list the groups that a group owns.

=item *

Set it to uppercase letter C<O> to permit anyone who can access the cell's
database server machines to list the groups owned by a machine or group
entry.

=back

=item *

The third flag determines who can use the B<pts membership> command to
list the groups to which a user or machine belongs, or the users and
machines that belong to a group.

=over 4

=item *

Set it to the hyphen (C<->) to permit the members of the
system:administrators group and a user to list the groups he or she
belongs to, to permit the members of the B<system:administrators> group to
list the groups a machine belongs to, or to permit the members of the
system:administrators group and a group's owner to list the users and
machines that belong to it.

=item *

Set it to lowercase C<m> to permit members of a group to list the other
members. (For user and machine entries, this setting is equivalent to the
hyphen.)

=item *

Set it to uppercase C<M> to permit anyone who can access the cell's
database server machines to list membership information for a user,
machine or group.

=back

=item *

The fourth flag determines who can use the B<pts adduser> command to add
users and machines as members of a group. This flag has no sensible
interpretation for user and machine entries, but must be set nonetheless,
preferably to the hyphen.

=over 4

=item *

Set it to the hyphen (C<->) to permit the members of the
system:administrators group and the owner of the group to add members.

=item *

Set it to lowercase C<a> to permit members of a group to add other
members.

=item *

Set it to uppercase C<A> to permit anyone who can access the cell's
database server machines to add members to a group.

=back

=item *

The fifth flag determines who can use the B<pts removeuser> command to
remove users and machines from membership in a group. This flag has no
sensible interpretation for user and machine entries, but must be set
nonetheless, preferably to the hyphen.

=over 4

=item *

Set it to the hyphen (C<->) to permit the members of the
system:administrators group and the owner of the group to remove members.

=item *

Set it to lowercase C<r> to permit members of a group to remove other
members.

=back

=back

=item B<-groupquota> <I<group creation quota>>

Specifies the number of additional groups a user can create (it does not
matter how many he or she has created already). Do not include this
argument for a group or machine entry.

=item B<-cell> <I<cell name>>

Names the cell in which to run the command. For more details, see
L<pts(1)>.

=item B<-noauth>

Assigns the unprivileged identity anonymous to the issuer. For more
details, see L<pts(1)>.

=item B<-localauth>

Constructs a server ticket using a key from the local
F</usr/afs/etc/KeyFile> file. Do not combine this flag with the 
B<-cell> or B<-noauth> options. For more details, see L<pts(1)>.

=item B<-force>

Enables the command to continue executing as far as possible when errors
or other problems occur, rather than halting execution at the first error.

=item B<-help>

Prints the online help for this command. All other valid options are
ignored.

=back

=head1 EXAMPLES

The following example changes the privacy flags on the group C<operators>,
retaining the default values of the first, second and third flags, but
setting the fourth and fifth flags to enable the group's members to add
and remove other members.

   % pts setfields -nameorid operators -access S-Mar

The following example changes the privacy flags and sets group quota on
the user entry C<admin>. It retains the default values of the first,
fourth, and fifth flags, but sets the second and third flags, to enable
anyone to list the groups that C<admin> owns and belongs to.  Users
authenticated as C<admin> can create an additional 50 groups.

   % pts setfields -nameorid admin -access SOM-- -groupquota 50

=head1 PRIVILEGE REQUIRED

To edit group entries or set the privacy flags on any type of entry, the
issuer must own the entry or belong to the system:administrators group. To
set group-creation quota on a user entry, the issuer must belong to the
system:administrators group.

=head1 SEE ALSO

L<pts(1)>,
L<pts_adduser(1)>,
L<pts_examine(1)>,
L<pts_listowned(1)>,
L<pts_membership(1)>,
L<pts_removeuser(1)>

=head1 COPYRIGHT

IBM Corporation 2000. <http://www.ibm.com/> All Rights Reserved.

This documentation is covered by the IBM Public License Version 1.0.  It was
converted from HTML to POD by software written by Chas Williams and Russ
Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
