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:

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 describe command
  • 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_OWNER or 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 list command
  • 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:

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.