Creating and deleting POSIX groups
This document explains how to create and delete a POSIX group.
Before you begin
Perform the following tasks before proceeding with the information on this page:
- Read the Groups API overview. 
Creating a POSIX group
You can create a POSIX group from an existing Google group, or by creating a new Google group and adding POSIX information.
Creating a POSIX group from an existing Google group
The following examples show how to create a POSIX group from an existing Google group:
gcloud
Use the
gcloud beta identity groups update command
to update an existing Google group to a POSIX group:
gcloud beta identity groups update EMAIL \ --add-posix-group=gid=GROUP_ID,name=POSIX_NAME
Replace the following:
- EMAIL: the email address of the group to update
- GROUP_ID: the group ID (GID) you want to assign to the POSIX group
- POSIX_NAME: the name you want to assign to the POSIX group
REST
To update a Google Group to a POSIX group, call the
groups.patch() method
with the POSIX groups field specified.
PATCH 'https://cloudidentity.googleapis.com/v1beta1/groups/GROUP_RESOURCE_NAME?updateMask=posix_group
{
  "posixGroups": [
    {
      "name": "POSIX_NAME",
      "gid": GROUP_ID
    }
  ]
}
Replace the following:
- GROUP_RESOURCE_NAME: the resource name of the Google group. To find a group's resource name, run the- gcloud identity groups describecommand
- POSIX_NAME: the name you want to assign to the POSIX group
- GROUP_ID: the group ID (GID) you want to assign to the POSIX group
Python
The following example shows a helper function to update a Google Group to a POSIX group using the Python client library:
def add_posix_group_data_to_group(service, group_name, posix_name, posix_gid):
  group = {
    "posix_groups": [
          {
              "name": posix_name,
              "gid": posix_gid,
          }
      ]
  }
  try:
    request = service.groups().patch(name=group_name, body=group)
    request.uri = request.uri + '&updateMask=posix_groups'
    response = request.execute()
    print(response)
  except Exception as e:
    print(e)
Creating a POSIX group from a new Google group
The following examples show how to create a POSIX group from a new Google group:
gcloud
Use the
gcloud beta identity groups create command
to create a POSIX group:
gcloud beta identity groups create EMAIL \ --organization=ORGANIZATION_ID \ --labels=cloudidentity.googleapis.com/groups.discussion_forum \ --posix-group=gid=GROUP_ID,name=POSIX_NAME
Replace the following:
- EMAIL: the email address of the group to be created
- ORGANIZATION_ID: the organization the group belongs to. Either an ID ("123456789") or the associated domain ("example.com").
- GROUP_ID: the group ID (GID) you set for the group
- POSIX_NAME: the name you set for the group
REST
To create a group, call the
groups.create() method
with the email address, organization ID, POSIX groups, and labels for the new
group.
POST 'https://cloudidentity.googleapis.com/v1beta1/groups?initialGroupConfig=WITH_INITIAL_OWNER
{
"parent": "customers/CUSTOMER_ID",
"groupKey": {"id": "EMAIL"},
"labels": {"cloudidentity.googleapis.com/groups.discussion_forum": ""},
"posixGroups": [
  {
    "name": "POSIX_NAME",
     "gid": GROUP_ID,
  }
]
}
Replace the following:
- initialGroupConfig=WITH_INITIAL_OWNER: Either- ?initialGroupConfig=WITH_INITIAL_OWNERor empty. Any empty group can only be created by organization admins.
- CUSTOMER_ID: the customer ID for your organization. To find the customer ID run the- gcloud organizations listcommand
- EMAIL: the email address of the group to be created
- POSIX_NAME: the name you want to assign to the POSIX group
- GROUP_ID: the group ID (GID) you want to assign to the POSIX group
Python
The following example shows a helper function to create a POSIX group using the Python client library:
def create_posix_group(customer_id, email, query, posix_name, posix_gid):
  service = build_service()
  groupDef = {
      "parent": "customerId/{}".format(customer_id),
      "groupKey": {"id": email},
      "labels": {"cloudidentity.googleapis.com/groups.discussion_forum": ""},
      "posixGroups": [
          {
              "name": posix_name,
              "gid": posix_gid,
          }
      ]
  }
  request = service.groups().create(body=groupDef)
  request.uri += "&initialGroupConfig=WITH_INITIAL_OWNER"
  response = request.execute()
  return response
Deleting a POSIX group
The following examples show how to remove POSIX information from a Google group.
gcloud
Use the
gcloud beta identity groups update command
and specify the --remove-posix-groups flag with the
GROUP_ID or POSIX_NAME value:
gcloud beta identity groups update \ EMAIL \ --remove-posix-groups=GROUP_ID_or_POSIX_NAME
Replace the following:
- EMAIL: the email address of the group to be deleted
- GROUP_ID_or_POSIX_NAME: the group ID or POSIX group name of the group to be deleted
REST
To update a Google Group to a POSIX group, call the
groups.patch() method with
the POSIX groups field specified.
PATCH 'https://cloudidentity.googleapis.com/v1beta1/groups/GROUP_RESOURCE_NAME?updateMask=posix_group
{
  "posixGroups": []
}
Replace the following:
- GROUP_RESOURCE_NAME: the resource name of the Google group. To find a group's resource name, run the- gcloud identity groups describecommand
Python
The following example shows a helper function to update a Google Group to a POSIX group using the Python client library:
def remove_posix_data_from_group(service, group_name, posix_name, posix_gid):
  group = {
    "posix_groups": []
  }
  try:
    request = service.groups().patch(name=group_name, body=group)
    request.uri = request.uri + '&updateMask=posix_groups'
    response = request.execute()
    print(response)
  except Exception as e:
    print(e)
What's next
After the POSIX group exists, you can retrieve it and list its memberships. For more information, see Retrieving and listing POSIX groups.