本节介绍 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”策略组。
将策略组以 ZIP 文件格式导出到指定的目标文件中。这些策略组可能来自策略组系统信息库,也可能是实体策略组。
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>:存储 ZIP 文件的路径和文件名。如果不指定文件名,则默认为 /tmp/<policy group name>.zip。如果目标文件不可写,命令将退出并报告错误。
% pgtool export --scope=host --name=HostPolicyGroup1 --username=jmonroe /tmp/newdir
将策略组“HostPolicyGroup1”导出到 HostPolicyGroup1.zip 文件中,该文件是在新目录 /tmp/newdir 中创建的。
从指定的源文件导入以 ZIP 文件格式存储的策略组。可以将策略组导入到策略组系统信息库或实体中。
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>:存储 ZIP 文件的路径和文件名。
% pgtool import --scope=host --name=NewHostPolicyGroup1 --username=jmonroe --priority=7 /tmp/HostPolicyGroup1.zip
从 HostPolicyGroup1.zip 文件中导入名为 "NewHostPolicyGroup1"、范围为“主机”、优先级为 "7" 的策略组。
如果不指定任何选项,将列出策略组系统信息库中的所有策略组。如果指定了两个存储系统后端,将列出该用户存储系统后端的策略组系统信息库中的所有策略组。根据指定的选项,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]
创建名为 ~/.apocpass 的文件,其中包含 "jmonroe" 和 "password" 的条目,此文件的权限为 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”将策略组“UserPolicyGroup1”从实体“cn=Role1,o=staff,o=apoc”中删除。
重命名策略组系统信息库中的策略组。
rename [--username=<name>] [--scope=<user/host>] <name> <newname>
--username=<name>:以配置系统信息库使用的格式表示的系统管理员的用户名,例如“jmonroe”。
--scope=<user/host>:指定现有策略组的范围,可以是用户或主机。如果不指定,则默认范围为用户。
<name>:指定了策略组系统信息库中策略组的当前名称。
<newname>:策略组的新名称。如果策略组系统信息库中已存在具有此名称和此范围的策略组,命令将退出并报告错误。
% pgtool rename --username=jmonroe NewUserGroup2 renamedNewUserGroup2
将策略组 "NewUserGroup2" 重命名为 "renamedNewUserGroup2"。