p4 group

Synopsis

Add or delete users from a group, or set the maxresults, maxscanrows, maxlocktime, and timeout limits for the members of a group.

Syntax

p4 [g-opts] group [-a | -A] groupname
p4 [g-opts] group -d [-a | -F] groupname
p4 [g-opts] group -o groupname
p4 [g-opts] group -i [-a | -A]

Description

A group is a list of Perforce users. Use groups to set access levels in the p4 protect form, to limit the maximum amount of data that can be retrieved from Perforce by particular users with a single command, to set the timeout period for p4 login tickets, and to provide information for the p4 ldapsync command.

To delete a group, use p4 group -d groupname, or call p4 group groupname and remove all the users from the resulting form. Use the -F option with the -d option to force deletion and to remove the group from the protections table and from all groups.

Form Fields

Field Name Type Description

Group:

Read-only

The name of the group, as entered on the command line.

MaxResults:

Writable

The maximum number of results that members of this group can access from the service from a single command. The default value is unset. See Usage Notes for more details.

MaxScanRows:

Writable

The maximum number of rows that members of this group can scan from the service from a single command. The default value is unset. See Usage Notes for more details.

MaxLockTime:

Writable

The maximum length of time (in milliseconds) that any one operation can lock any database table when scanning data. The default value is unset. See Usage Notes for more details.

MaxOpenFiles:

Writable

The maximum number of files that a member of a group can open using a single command. See Usage Notes for more details.

Timeout:

Writable

The duration (in seconds) of the validity of a session ticket created by p4 login. The default value is 43,200 seconds (12 hours). To create a ticket that does not expire, set the Timeout: field to unlimited.

PasswordTimeout:

Writable

The length of time (in seconds) for which passwords for users in this group remain valid. To disable password aging, use a value of unset.

LdapConfig

Writable

The LDAP configuration to use when populating the group’s user list from an LDAP query.

For more information, see p4 ldapsync.

LdapSearchQuery

Writable

The LDAP query used to identify the members of the group.

For more information, see p4 ldapsync.

LdapUserAttribute

Writable

The LDAP attribute that represents the user’s username.

For more information, see p4 ldapsync.

Subgroups:

Writable, multi-line

Names of other Perforce groups.

To add all users in a previously defined group to the group you’re presently working with, include the group name in the Subgroups: field of the p4 group form. Note that user and group names occupy separate namespaces, and thus, groups and users can have the same names.

Every member of any previously defined group you list in the Subgroups: field will be a member of the group you’re now defining.

Owners:

Writable, multi-line

Names of other Perforce users.

Group owners without super access are permitted to administer this group, provided that they use the -a option.

Group owners are not necessarily members of a group; if a group owner is to be a member of the group, the userid must also be added to the Users: field.

The specified owner does not have to be a Perforce user. You might want to use an arbitrary name if the user does not yet exist, or if you have deleted the user and need a placeholder until you can assign the spec to a new user.

Users:

Writable, multi-line

The Perforce usernames of the group members. Each user name must be typed on its own line, and should be indented.

Options

-a

Allow a (non-superuser) group owner to administer the group. The user must be listed in the Owner: field of the group.

-A

Allow a user with admin access to add a new group. Existing groups cannot be modified when this option is used.

-d groupname

Delete group groupname. The members of the group are affected only if their access level or maxresults value changes as a result of the group’s deletion.

-F groupname

Used only with the -d option, forces the deletion of the specified group, and also removes the group from the protections table and from all groups.

-i

Read the form from standard input without invoking the user’s editor. The new group specification replaces the previous one.

-o

Write the form to standard output without invoking the user’s editor.

g-opts

See “Global Options”.

Usage Notes

Can File Arguments Use Revision Specifier? Can File Arguments Use Revision Range? Minimal Access Level Required

N/A

N/A

super
(admin for p4 group -A)
(list for p4 group -o or -a)

  • Referring to a (nonexistent) user in a group definition does not create the user, nor does it consume a license; use the p4 user command to create users.
  • Ticket Timeout and PasswordTimeout values for users who belong to multiple groups are calculated the same way as maxresults values: the largest timeout value for all the groups of which the user is a member (including unlimited, but ignoring unset). Users in no groups have the default ticket Timeout value of 43200 and PasswordTimeout value of unset. To create a ticket that does not expire, set the Timeout to unlimited.
  • If you are using the PasswordTimeout: field to implement password aging, a 30-day timeout is 2,592,000 seconds.
  • As the number of files in the depot grows, certain commands can significantly slow down the service if called with no parameters, or if called with non-restrictive arguments. For example, p4 print //depot/... will print the contents of every file in the depot on the user’s screen, and p4 filelog //depot/... will attempt to retrieve data on every file in the depot at every revision.

    The Perforce superuser can limit the amount of data that Perforce returns to the user by setting the MaxResults value for groups of users. The superuser can also limit the amount of data scanned (whether returned to the user or not) by setting the MaxScanRows value, and the length of time any database table can be locked in by any single operation by setting the MaxLockTime value. Equally, the MaxOpenFiles field can be set to specify the maximum number of files that a group member can open at any given time.

    If any of the MaxResults, MaxScanRows, MaxLockTime, or MaxOpenFiles limits are violated, the request fails and the user is asked to limit his query.

    If a user belongs to multiple groups, the service computes her MaxResults value to be the maximum of the MaxResults for all the groups of which the user is a member (removing the limit if it encounters a setting of unlimited, but ignoring any settings still at the default value of unset). If a particular user is not in any groups, her MaxResults value is unset. (The user’s MaxScanRows, MaxLockTime, and MaxOpenFiles limits are computed in the same way.)

    The speed of most hardware should make it unnecessary to ever set a MaxResults value below 10,000, a MaxScanRows value below 50,000, or a MaxLockTime value below 1,000.

    A user can also set these limits by specifying them on a per-command basis for some commands. Values set for individual commands, override values set using p4 group. To disable overriding p4 group settings, set server.commandlimits=2.

  • To unload a workspace or label, a user must be able to scan all the files in the workspace’s have list and/or files tagged by the label. Administrators should set MaxScanRows and MaxResults high enough that users will not need to ask for assistance with p4 unload or p4 reload operations.
  • To display a group’s maxresults, maxscanrows, maxlocktime, MaxOpenFiles and timeout limits, use p4 groups -v groupname.
  • Use p4 help maxresults to obtain the list of commands that are affected by any of the four limiting values.

Related Commands

To modify users' access levels

p4 protect

To view a list of existing groups

p4 groups

To synchronize LDAP and Perforce groups

p4 ldapsync