本章描述 Java Desktop System Configuration Manager 指令行介面 (CLI),該介面可替代 Configuration Manager 圖形化使用者介面,用於建立、處理、匯出和匯入配置策略群組。
此 CLI 用於建立、處理、匯出、匯入和刪除策略群組。這些策略群組可以是策略群組系統訊息庫的一部分,也可以是實體策略群組。正如使用 Configuration Manager GUI 一樣,CLI 可讓使用者將策略群組系統訊息庫和實體策略群組中的策略群組指定/取消指定給實體;或從實體指定/取消指定策略群組系統訊息庫和實體策略群組中的策略群組。CLI 可讓系統訊息庫和實體策略群組從 XML 格式匯出為壓縮檔案,或從壓縮檔案匯入為 XML 格式。這樣,您便可以在匯入策略群組之前建立、編輯或刪除此類檔案中的策略設定。
CLI 不提供下列 GUI 功能的對等功能:
實體階層結構導航。
檢視實體的已合併策略設定。
產生報告。
CLI 由指令 pgtool 組成,該指令以單行指令模式進行作業,每次執行一條指令。pgtool 包含一些子指令、選項和運算元,這些將在指令摘要中描述。選項可以使用完整關鍵字或縮寫關鍵字進行指定。在以下的指令描述中使用了完整關鍵字,但與之對應的捷徑位於表 3–2中。
需要啟動資訊,以便尋找和查詢儲存實體和策略群組的資料儲存區。需要的啟動資訊包括伺服器、連接埠號、基底辨別名稱 (DN) 和類型。這些資訊可以在指令行中指定,也可在啟動檔案中存取。
啟動檔案的位置可以在指令行中指定。否則,系統將使用隨 CLI 一起安裝的啟動檔案。該檔案僅使用關鍵名稱安裝,應該由管理員來編輯以提供適當的啟動值。
CLI 還可讓您在指令行中指定啟動資訊。用於指定啟動詳細資訊的選項如下:
--hostname=<hostname> (託管後端儲存裝置之伺服器的名稱)
--base=<base name> (後端儲存裝置的基底項目)
--port=<port number> (後端儲存裝置使用的連接埠號)
--type=<type of back end> (例如 LDAP)
每次執行指令時均需要使用者名稱和密碼。
CLI 提供一條 login 指令,以便將使用者名稱/密碼對儲存在管理員主目錄的憑證檔案中。該檔案名為 .apocpass 並具有受限制的存取權限。當使用 login 指令時,CLI 會檢查主目錄中是否存在 .apocpass 檔案。如果存在,而該檔案又沒有正確的許可權 (即 600),則指令將發生錯誤並結束。如果已經指定了使用者名稱,則系統將提示使用者輸入密碼。否則,系統將提示使用者輸入使用者名稱和密碼。此使用者名稱和密碼將使用匿名存取進行驗證。如果不支援匿名存取,系統將提示使用者輸入已授權的 DN 和密碼。如果驗證成功,將向 .apocpass 檔案中增加一個項目。此項目的關鍵字由伺服器/連接埠/基底 DN 和使用者名稱組成。
例如,使用者「jmonroe」可以使用關鍵字 cdelab1.ireland.sun.com:389;o=apoc:jmonroe,以基底項目 o apoc 儲存伺服器 cdelab1.ireland.sun.com (位於連接埠 389 上) 的密碼。儲存的值則為使用者 DN 和密碼。此後端的許多使用者的使用者/密碼對可以這樣儲存。其他後端的使用者名稱/密碼對可使用類似方式儲存。login 指令成功完成後,即可執行其他 CLI 指令,而不必指定使用者名稱或密碼。
對於其他指令,CLI 會首先檢查是否存在此使用者的 .apocpass 檔案。如果不存在,系統將提示使用者輸入使用者名稱和密碼。如果該使用者名稱和密碼成功通過驗證,將執行指令。如果憑證檔案不存在且已經在指令行中指定了使用者名稱,CLI 會尋找此主機、連接埠、基底 DN 和使用者名稱的項目。如果項目存在,將使用儲存的使用者 DN 和密碼執行指令,否則將提示使用者輸入密碼。如果未在指令行中指定使用者名稱,將在 .apocpass 檔案中搜尋使用該主機/連接埠和基底 DN 之組合的關鍵字。如果存在此組合的唯一項目,將使用儲存的使用者 DN 和密碼執行指令。如果該項目不唯一,系統將提示使用者輸入使用者名稱。如果找到匹配的項目,將使用儲存的使用者 DN 和密碼執行指令。如果沒有匹配的項目,系統將提示使用者輸入密碼。當系統提示使用者輸入密碼時,將使用此主機/連接埠/基底 DN 的組合之 .apocpass 檔案中的項目來驗證使用者名稱和密碼。如果不存在這樣的項目,將使用匿名存取進行驗證。
每次使用指令均會建立和初始化與 policymgr API 的連線,然後在執行指令後結束該連線。如果指令結束並產生 errir,將不對配置策略套用任何變更。
實體使用 LDAP DN 來表示,例如 uid=jmonroe,ou=People,o=apoc。
本節描述 Configuration Manager CLI 功能。
若要取得所有可用 CLI 指令的清單,請鍵入 pgtool --help。
若要顯示版本資訊,請鍵入 pgtool --version。
將策略群組系統訊息庫中的策略群組指定給實體。
add [--username=<name>] [--scope=<user/host>] <name> <entity>
--username=<name>:配置系統訊息庫所使用格式的管理員使用者名稱,例如「jmonroe」。
--scope=<user/host>:指定策略群組的範圍,可以是使用者或主機。如果未指定,則預設為使用者範圍。
<name>:此項指定要指定給實體之策略群組的名稱。
<entity>:實體名稱以後端儲存裝置所使用的格式來指定,例如使用 LDAP 後端,實體將使用辨別名稱來指定。
% pgtool add --username=jmonroe UserPolicyGroup1 cn Role1,o=staff,o=apoc
使用者「jmonroe」將策略群組「UserPolicyGroup1」指定給了實體「cn=Role1,o=staff,o=apoc」。
create 指令建立新的空策略群組。
create [--username=<name>] [--name=<policy group name>] [--scope=<user/host>] [--entity=<entity name>] [--priority=<priority integer>]
--username=<name>:配置系統訊息庫使用之格式的管理員使用者名稱,例如「jmonroe」。
--name=<policy group name>:此項指定策略群組的名稱。如果使用此名稱和此範圍的策略群組在此層級上已存在,則指令將發生錯誤並結束。此選項不能與 --entity 選項一起使用,因為實體策略群組具有受限制的預設名稱。
--scope=<user/host>:指定策略群組的範圍,可以為使用者或主機。如果未指定,則預設為使用者範圍。
--entity=<entity name>:建立策略群組的實體。如果未指定此選項,則策略群組將成為策略群組系統訊息庫的一部分。此選項不能與 --name 選項一起使用,因為實體策略群組具有受限制的預設名稱。
--priority=<priority integer> :指定策略群組優先權的整數 (>=1)。此選項不能與 --entity 選項一起使用,因為實體策略群組具有不可變更的預設優先權。如果指定的優先權與此層上此範圍的現有策略群組的優先權相同,則指令將發生錯誤並結束。如果未指定優先權,則會指定一個。
% pgtool create --username=jmonroe --scope=host --name=NewHostGroup1
建立名為「NewHostGroup1」的新策略群組,其範圍是「主機」。
刪除策略群組。
delete [--username=<name>] [--name=<policy group name>] [--scope=<user/host>] [--entity=<entity name>]
--username=<name>:配置系統訊息庫使用之格式的管理員使用者名稱,例如「jmonroe」。
--name=<policy group name>:此項指定要刪除的策略群組的名稱。此選項不與 --entity 選項一起使用,因為實體策略群組具有受限制的預設名稱。如果策略群組不存在或不能唯一識別,則指令將發生錯誤並結束。
--scope=<user/host>:指定策略群組的範圍,可以為使用者或主機。如果未指定,則預設為使用者範圍。
--entity=<entity name>:儲存策略群組的實體。如果未指定此選項,則策略群組將成為策略群組系統訊息庫的一部分。此選項不與 --name 選項一起使用,因為實體策略群組具有受限制的預設名稱。
% pgtool delete --username=jmonroe --scope=host --name=renamedNewHostGroup1
刪除了策略群組「renamedNewHostGroup1」。
將策略群組以壓縮檔案格式匯出到指定的目標。該策略群組可以來自策略群組該策略群組可以來自策略群組系統訊息庫,也可以是實體策略群組。
export [--username=<name>] [--name=<policy group name>] [--scope=<user/host>] [--entity=<entity name>] <target>
--username=<name>:配置系統訊息庫使用之格式的管理員使用者名稱,例如「jmonroe」。
--name=<policy group name>:指定策略群組的名稱。此選項不與 --entity 選項一起使用,因為實體策略群組具有受限制的預設名稱。策略群組系統訊息庫中可能有兩個相同名稱的策略群組,一個具有使用者範圍,另一個具有主機範圍。如果未指定範圍,則預設為使用者範圍。
--scope=<user/host>:指定策略群組的範圍。此項可以是使用者或主機。如果未指定範圍,則預設為使用者。
--entity=<entity name>:儲存策略群組的實體。此選項不能與 --name 選項一起使用,因為實體策略群組具有受限制的預設名稱。如果未指定此選項,則策略群組將成為策略群組系統訊息庫的一部分。實體名稱以後端儲存裝置所使用的格式來指定,例如使用 LDAP 後端,實體將使用辨別名稱來指定。
<target>:用於儲存壓縮檔案的路徑和檔案名稱。如果未提供檔案名稱,則預設為 /tmp/<policy group name>.zip。如果目標不可寫入,則指令將發生錯誤並結束。
% pgtool export --scope=host --name=HostPolicyGroup1 --username=jmonroe /tmp/newdir
將「HostPolicyGroup1」匯出到 HostPolicyGroup1.zip 中,該檔案建立在新目錄 /tmp/newdir 中。
從指定的來源匯入以壓縮檔案格式儲存的策略群組。策略群組可以匯入到策略群組系統訊息庫或實體。
import [--username=<name>] [--name=<policy group name>] [--scope=<user/host>] [--entity=<entity name>] [--priority=<priority integer>] <source>
--username=<name>:配置系統訊息庫使用之格式的管理員使用者名稱,例如「jmonroe」。
--name=<policy group name>:此項指定策略群組的名稱。此選項不與 --entity 選項一起使用,因為實體策略群組具有受限制的預設名稱。同一位置中不能存在名稱和範圍均相同的兩個策略群組。如果未指定群組名稱,則預設為 .zip 檔案的名稱。如果策略群組系統訊息庫中已存在此名稱與範圍的策略群組,則該策略群組將被覆寫。
--scope=<user/host>:指定策略群組的範圍。此項可為使用者或主機。如果未指定範圍,則預設為使用者。
--entity=<entity name>:儲存策略群組的實體。如果未指定此選項,則策略群組將成為策略群組系統訊息庫的一部分。此選項不能與 -name 選項一起使用,因為實體策略群組具有受限制的預設名稱。實體名稱以後端儲存裝置所使用的格式來指定,例如使用 LDAP 後端,實體將使用辨別名稱來指定。
--priority=<priority integer> :指定策略群組系統訊息庫中策略群組優先權的整數 (>=1)。此選項不能與 --entity 選項一起使用,因為實體策略群組具有不可變更的預設優先權。如果指定的優先權與系統訊息庫中此範圍的現有策略群組的優先權相同,則指令將發生錯誤並結束。如果優先權未指定,則會指定一個。
<source>:用於儲存壓縮檔案的路徑和檔案名稱。
% pgtool import --scope=host --name=NewHostPolicyGroup1 --username=jmonroe --priority=7 /tmp/HostPolicyGroup1.zip
將名為「NewHostPolicyGroup1」、範圍為「主機」、優先權為「7」的策略群組從 HostPolicyGroup1.zip 匯入。
如果未指定選項,則列出策略群組系統訊息庫中的所有策略群組。如果指定了兩個後端儲存裝置,則列出該使用者後端儲存之策略群組系統訊息庫中的所有策略群組。根據指定的選項,list 還可以列出指定給某個實體的所有策略群組或使用特定策略群組的實體。當列出策略群組時,如果適當,還將列出名稱、範圍、優先權、實體等詳細資訊。實體依照其辨別名稱列出。
list [--username=<name>] [--scope=<user/host>] [--entity=<entity name>][--name =<policy group name>]
--username=<name>:配置系統訊息庫使用之格式的管理員使用者名稱,例如「jmonroe」。
--scope=<user/host>:如果單獨指定了此選項,則列出策略群組系統訊息庫中該指定範圍的所有策略群組。如果未指定,則預設為使用者範圍。如果與 -entity 選項一起使用,則列出指定給實體之此範圍的所有策略群組。如果與 -name 選項一起使用,則列出使用指定範圍的指定策略群組之所有實體。
--entity=<entity name>:列出指定給實體的策略群組。
--name=<policy group name>:列出使用指定策略群組的實體。
% pgtool list --username=jmonroe
列出管理員「jmonroe」的全域策略群組。
% pgtool list --username=jmonroe --name=UserPolicyGroup1
列出使用策略群組「UserPolicyGroup1」的實體。
將資料儲存區後端的使用者名稱和密碼儲存在管理員主目錄中的檔案中,則此使用者名稱和密碼在將來可以用於呼叫 pgtool。
憑證儲存在管理員主目錄中名為 .apocpass 的檔案中。如果此檔案已存在且它不具有正確的許可權,則指令將發生錯誤並結束。如果已輸入了使用者名稱,系統將提示管理員輸入密碼,否則系統將提示管理員輸入使用者名稱和密碼。該使用者名稱和密碼使用對資料儲存區的匿名存取來驗證。如果不支援匿名存取,系統將提示管理員輸入已授權的使用者名稱和密碼。如果已授權使用者名稱的驗證失敗,則指令將發生錯誤並結束。經過驗證之後,使用者/密碼對將儲存在管理員的 .apocpass 檔案中。密碼使用由主機/連接埠/基本啟動資訊和使用者名稱的組合構成的關鍵字來儲存。啟動檔案可以指定為選項引數,否則啟動資訊可以使用上述的其他選項來指定。如果兩種方法均未使用,系統將從隨 pgtool 一起安裝的預設啟動檔案中取得啟動資訊。如果沒有啟動資訊可用,或者無法建立憑證檔案,則指令將發生錯誤並結束。如果成功建立了憑證檔案,則不必使用此後端儲存裝置為後續的 pgtool 指令指定使用者名稱和密碼:將使用儲存在憑證檔案中的使用者名稱和密碼詳細資訊。
login [--username=<name>] [--file=<bootsrap file>] [--hostname=<hostname>] [--port=<portnumber>] [--base=<base name>] [--type=<type of back end>]
--username=<name>:配置系統訊息庫使用之格式的管理員使用者名稱,例如「jmonroe」。
--file=<bootstrap file>:啟動檔案之完全合格的路徑。
--hostname=<hostname>:所需後端儲存裝置之主機的名稱。使用此項,而不使用啟動檔案提供的相應資訊。
--port=<port number>:此後端儲存裝置使用的連接埠號。
--base=<base name>:此後端儲存裝置的基底,例如 LDAP 後端的基底 DN。
--type=<type of back end>:預設為 LDAP。
% pgtool login --username=jmonroe [Enter the correct password when prompted]
建立了一個具有「jmonroe」和「password」的項目之名為 ~/.apocpass 的檔案,該檔案具有許可權 600
變更策略群組系統訊息庫中策略群組的優先權。
modify [--username=<name>] [--scope=<user/host>] <name> <priority>
--username=<name>:配置系統訊息庫使用之格式的管理員使用者名稱,例如「jmonroe」。
--scope=<user/host>:指定策略群組的範圍,可以是使用者或主機。如果未指定,則預設為使用者範圍。
<name>:指定策略群組的名稱。
<priority>:指定策略群組優先權的整數 (>=1)。如果指定的優先權與策略群組系統訊息庫中此範圍的現有策略群組的優先權相同,則指令將失敗。
% pgtool modify --username=jmonroe UserPolicyGroup1 15
將策略群組「UserPolicyGroup1」的優先權變更為 15。
從實體移除策略群組。
remove [--username=<name>] [--scope=<user/host>] <name> <entity>
--username=<name>:配置系統訊息庫使用之格式的管理員使用者名稱,例如「jmonroe」。
--scope=<user/host>:指定策略群組的範圍,可以是使用者或主機。如果未指定,則預設為使用者。
<name>:此項指定策略群組系統訊息庫中指定給實體的策略群組的名稱。
<entity>:此實體的名稱。
% pgtool remove --username=jmonroe UserPolicyGroup1 cn=Role1,o=staff,o=apoc
使用者「jmonroe」從實體「cn=Role1,o=staff,o=apoc」中移除了策略群組「UserPolicyGroup1」。
重新命名策略群組系統訊息庫中的策略群組。
rename [--username=<name>] [--scope=<user/host>] <name> <newname>
--username=<name>:配置系統訊息庫使用之格式的管理員使用者名稱,例如「jmonroe」。
--scope=<user/host>:指定現有策略群組的範圍,可以是使用者或主機。如果未指定,則預設為使用者範圍。
<name>:此項指定策略群組系統訊息庫中策略群組的目前名稱。
<newname>:策略群組的新名稱。如果策略群組系統訊息庫中已存在此名稱和範圍的策略群組,則指令將發生錯誤並結束。
% pgtool rename --username=jmonroe NewUserGroup2 renamedNewUserGroup2
將「NewUserGroup2」重新命名為「renamedNewUserGroup2」。
指令 |
說明 |
---|---|
add |
將策略群組系統訊息庫中的策略群組指定給實體。 |
create |
建立新的空策略群組。 |
delete |
刪除策略群組。 |
export |
將策略群組以壓縮檔案的格式匯出到指定的目標。 |
import |
從指定的來源匯入以壓縮檔案格式儲存的策略群組。 |
list |
列出策略群組系統訊息庫中的策略群組,或列出指定給某個實體的策略群組,或列出指定的策略群組具有的實體。 |
login |
在使用者主目錄中的檔案中儲存此資料儲存區後端的使用者名稱和密碼,則在將來對 pgtool 的呼叫中,可以使用此使用者名稱和密碼。 |
modify |
變更策略群組系統訊息庫中策略群組的優先權。 |
remove |
從實體取消指定策略群組。 |
rename |
重新命名策略群組系統訊息庫中的策略群組。 |
表 3–2 選項
選項 |
說明 |
---|---|
-b <base name>, --base=<base name> |
指定後端儲存裝置的根項目。此基底項目的格式由使用的後端儲存裝置來確定。例如,具有根項目 o=apoc: --base o=apoc 的 LDAP 後端儲存裝置。 |
-e <entity>, --entity=<entity> |
指定表示使用者、角色、組織、主機或網域的實體。該實體的項目格式由使用的後端儲存裝置來確定。例如,具有使用者「jmonroe」的 LDAP 後端儲存裝置:-e uid=jmonroe,ou=People,o=staff,o=apoc |
-f <file>, --file=<file> |
指定包含執行此指令所用之詳細啟動資訊的完全合格的檔案。例如:-f /tmp/policymgr.cfg |
-h <hostname>, --hostname=<hostname> |
指定後端儲存裝置之主機的名稱。例如:--host=server1.sun.com |
-i <priority>, --priority=<priority> |
指定用於指示策略群組優先權的正整數。例如:-i 12 |
-m <name>, --name=<name> |
指定策略群組的名稱。例如:--name=UserPolicyGroup1 |
-p <port>, --port=<port> |
指定後端儲存裝置的連接埠號。例如:-p 399 |
-s <scope>, --scope=<scope> |
指定策略群組的範圍。範圍可以是使用者或主機,預設為使用者。例如:--scope=host |
-t <type>, --type=<type> |
指定後端儲存裝置的類型。此項預設為 LDAP。例如:-t LDAP |
-u <username>, --username=<username> |
指定後端儲存裝置的管理員的使用者名稱。然後,系統會提示使用者輸入密碼。如果未使用此選項,且使用者未使用 pgtool login 子指令,則系統將提示使用者輸入使用者名稱和密碼。例如:--username=jmonroe |
-?, --help |
顯示此說明並結束。 |
-V, --version |
顯示版本並結束。 |