检索和列出 POSIX 群组

本文档介绍了如何检索和列出 POSIX 群组。

检索 POSIX 群组的成员

您可以使用 Google 群组名称、POSIX 群组名称、POSIX 群组 ID 或电子邮件地址来检索群组信息。

按群组名称检索 POSIX 群组

以下示例展示如何使用群组名称检索 POSIX 群组:

REST

如需按名称检索 POSIX 群组,请使用该群组的资源名称调用 groups.get() 方法

GET "https://cloudidentity.googleapis.com/v1beta1/groups/GROUP_RESOURCE_NAME"

替换以下内容:

Python

以下示例展示了如何使用 Python 客户端库按名称检索 POSIX 群组:

def get_posix_group_by_name(name):
  service = build_service()
  response = service.groups().get(name=name).execute()
  return response

按 POSIX 群组名称检索 POSIX 群组

以下示例展示了如何按 POSIX 群组名称检索群组信息:

REST

如需按 POSIX 群组名称搜索 POSIX 群组,请使用以下查询字符串调用 groups.search() 方法

query=parent=='customers/CUSTOMER_ID' && 'cloudidentity.googleapis.com/groups.posix' in labels && posix_groups.exists(pg, pg.name=='POSIX_NAME')

POSIX_NAME 替换为您要分配给 POSIX 群组的名称。

以下是使用查询的 GET 请求:

GET "https://cloudidentity.googleapis.com/v1beta1/groups:search?query=parent=='customers/CUSTOMER_ID'%26%26'cloudidentity.googleapis.com/groups.posix'%20in%20labels%26%26posix_groups.exists(pg,pg.name=='POSIX_GROUP_NAME')&view=VIEW"

替换以下内容:

  • CUSTOMER_ID:您的组织的客户 ID。如需查找客户 ID,请运行 gcloud organizations list 命令
  • POSIX_NAME:您要分配给 POSIX 群组的名称
  • VIEWFULLBASIC

Python

以下示例展示了如何使用 Python 客户端库按 POSIX 群组名称检索 POSIX 群组:

def get_posix_group_by_posix_name((service, customer_id, posix_group_name, page_size, view):
  # Set the label to search for a POSIX group
  searchQuery = ("&query=parent=='customers/{customer_id}' "
         "&& 'cloudidentity.googleapis.com/groups.posix' in labels "
         "&& posix_groups.exists(pg, pg.name=='{posix_group_name}')"
         "?pageSize={page_size}&view={view}".format(
             customer_id=customer_id, posix_group_name=posix_group_name,
             page_size=page_size, view=view))
  try:
    searchGroupsRequest = service.groups().search()
    searchGroupsRequest.uri += searchQuery
    response = searchGroupsRequest.execute()
    print response
  except Exception as e:
    print e

按 POSIX 群组 ID 检索 POSIX 群组

以下示例展示了如何使用群组 ID 检索群组信息:

REST

如需按 ID 搜索 POSIX 群组,请使用以下查询字符串调用 groups.search() 方法

query=parent=='customers/CUSTOMER_ID' && 'cloudidentity.googleapis.com/groups.posix' in labels && posix_groups.exists(pg, pg.gid==GIDu)

替换以下内容:

  • CUSTOMER_ID:您的组织的客户 ID。如需查找客户 ID,请运行 gcloud organizations list 命令
  • GROUP_ID:您要分配给 POSIX 群组的群组 ID (GID)

以下是使用查询的 GET 请求:

GET "https://cloudidentity.googleapis.com/v1beta1/groups:search?query=parent=='customers/CUSTOMER_ID'%26%26'cloudidentity.googleapis.com/groups.posix'%20in%20labels%26%26posix_groups.exists(pg,pg.gid==GROUP_IDu)&view=VIEW"

替换以下内容:

  • CUSTOMER_ID:您的组织的客户 ID。如需查找客户 ID,请运行 gcloud organizations list 命令
  • GROUP_ID:您要分配给 POSIX 群组的群组 ID (GID)
  • VIEWFULLBASIC

Python

以下示例展示了如何使用 Python 客户端库按群组 ID 检索 POSIX 群组:

def get_posix_group_by_gid(service, customer_id, posix_group_id, page_size, view):
  # Set the label to search for a POSIX group
  searchQuery = ("&query=parent=='customers/{customer_id}' "
         "&& 'cloudidentity.googleapis.com/groups.posix' in labels "
         "&& posix_groups.exists(pg, pg.gid=={posix_group_id}u)"
         "?pageSize={page_size}&view={view}".format(
             customer_id=customer_id, posix_group_id=posix_group_id,
             page_size=page_size, view=view))
  try:
    searchGroupsRequest = service.groups().search()
    searchGroupsRequest.uri += searchQuery
    response = searchGroupsRequest.execute()
    print response
  except Exception as e:
    print e

按电子邮件地址检索 POSIX 群组

以下示例展示了如何使用群组电子邮件地址检索群组信息:

gcloud

使用 gcloud beta identity groups describe 命令列出组织中的所有 POSIX 群组:

gcloud beta identity groups describe EMAIL_ADDRESS

EMAIL_ADDRESS 替换为要搜索的群组的电子邮件地址。

REST

如需按电子邮件地址检索 POSIX 组,请执行以下操作:

  1. 使用群组的电子邮件地址调用 groups.lookup() 方法

    GET "https://cloudidentity.googleapis.com/v1beta1/groups:lookup?groupKey.id=EMAIL_ADDRESS"
    

    记下返回的群组的资源名称。

  2. 使用群组的资源名称调用 groups.get() 方法

    GET "https://cloudidentity.googleapis.com/v1beta1/groups/GROUP_RESOURCE_NAME"
    

Python

以下示例演示了如何使用 Python 客户端库按电子邮件地址检索 POSIX 群组:

def get_posix_group_by_email(email):
  service = build_service()

  # First we use the email to get the groups name calling lookup()
  lookup_group_name_request = service.groups().lookup()
  param = "&groupKey.id=" + email
  lookup_group_name_request.uri += param
  lookup_group_name_response = lookup_group_name_request.execute()
  name = lookup_group_name_response.get("name")

  # Then we can call get() by passing in the group's name
  response = service.groups().get(name=name).execute()
  return response

列出 POSIX 群组

以下示例展示了如何列出组织中的所有 POSIX 群组:

gcloud

使用 gcloud identity groups search 命令列出组织中的所有 POSIX 群组:

gcloud identity groups search \
    --labels=cloudidentity.googleapis.com/groups.posix \
    --organization=ORGANIZATION

ORGANIZATION 替换为要搜索的群组的组织 ID。

REST

如需搜索所有 POSIX 群组,请使用以下查询字符串调用 groups.search() 方法

query=parent=='customers/CUSTOMER_ID' && 'cloudidentity.googleapis.com/groups.posix' in labels

CUSTOMER_ID 替换为您的组织的客户 ID。如需查找客户 ID,请运行 gcloud organizations list 命令

以下是使用查询的 GET 请求:

GET "https://cloudidentity.googleapis.com/v1beta1/groups:search?query=parent=='customers/CUSTOMER_ID'%26%26'cloudidentity.googleapis.com/groups.posix'%20in%20labels&view=VIEW"

替换以下内容:

  • CUSTOMER_ID:您的组织的客户 ID。如需查找客户 ID,请运行 gcloud organizations list 命令
  • GROUP_ID:您要分配给 POSIX 群组的群组 ID (GID)
  • VIEWFULLBASIC

Python

以下示例展示了使用 Python 客户端库搜索 POSIX 群组的辅助函数:

def search_posix_groups(service, customer_id, page_size, view):
  # Set the label to search for all POSIX groups
  searchQuery = ("&query=parent=='customers/{customer_id}' "
         "&& 'cloudidentity.googleapis.com/groups.posix' in labels "
         "?pageSize={page_size}&view={view}".format(
             customer_id=customer_id, page_size=page_size, view=view))
  try:
    searchGroupsRequest = service.groups().search()
    searchGroupsRequest.uri += searchQuery
    response = searchGroupsRequest.execute()
    print response
  except Exception as e:
    print e