[OpenAFS] Re: pts -expandgroups vs -supergroups
Michael Meffie
mmeffie@sinenomine.net
Mon, 26 Apr 2010 14:25:13 -0400
Andrew Deason wrote:
> On Thu, 22 Apr 2010 19:47:33 -0400
> Jason Edgecombe <jason@rampaginggeek.com> wrote:
>
>> Hi,
>>
>> What is the difference between the new -expandgroups and -supergroups
>> options to the pts mem command? That seem identical in my reading.
>
> -expandgroups just expands the listing of the normal pts output. So, if
> you have 'foo' is a member of 'bar' is a member of 'baz', 'pts mem baz'
> would just list 'bar'. Running 'pts mem baz -expandgroups' will list
> 'bar' and 'foo'.
>
> -supergroups lists the "parent" groups of a group. Normally if you run
> 'pts mem groupname' for a group, it lists the members of the group.
> 'pts mem groupname -supergroups' lists the groups that contain
> 'groupname'.
Yes, said another way, -supergroups only gives you an addition stanza of
information (and only for groups), where -expandgroups gives you a
completely different stanza by traversing the group nesting (for groups
and for users).
pts mem -supergroups adds the list of groups the group belongs to (the
supergroups) to the output. It has no effect when getting the membership
of a user, because pts already lists the groups a user belongs to. pts
mem -supergroups does not recurse, it only lists the direct supergroups
of a group.
The -expandgroups recurses to find all the users in a group, and
recurses to find all the groups a user belongs to.
> The documentation could probably stand to have some examples.
Yes, it could. Is the following clear and helpful?
The following example shows how to list the groups to which nested groups
belong. In this example the group C<executives> is a member of the group
C<management> and the group C<management> is a member of the group C<staff>.
The group C<management> is called a supergroup of the group C<executives> and the
group C<staff> is called a supergroup of the group C<management>.
% pts membership executives
Members of executives (id: -208) are:
jane
% pts membership executives -supergroups
Members of executives (id: -208) are:
jane
Groups executives (id: -208) is a member of:
management
% pts membership management -supergroups
Members of management (id: -207) are:
executives
mary
sarah
carol
Groups management (id: -207) is a member of:
staff
% pts membership staff -supergroups
Members of staff (id: -206) are:
sales
marketing
engineering
management
Groups staff (id: -206) is a member of:
The following example shows how to find all the users which belong
to a group, including users of nested groups. In this example, the
user C<jane> is listed as an expanded member of the group C<management>
instead of the group C<excutives>.
% pts membership management -expandgroups
Expanded Members of management (id: -207) are:
jane
mary
sarah
carol
The following example shows how to find all the groups a user
is a member of, including membership due to nested groups. In
this example the user C<jane> is a direct member of the group
C<executives>. The C<-expandgroups> flag shows all the groups
to which C<jane> has membership status.
% pts membership jane
Groups jane (id: 7) is a member of:
executives
% pts membership jane -expandgroups
Expanded Groups jane (id: 7) is a member of:
staff
management
executives