擷取及列出 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