本章提供了有关 Sun Desktop Manager 命令行界面的信息。
CLI 可用于创建、处理、导出、导入和删除配置文件。与 Desktop Manager GUI 一样,CLI 也允许执行以下操作:
可以将配置文件指定给元素,也可以为元素取消指定配置文件。
可以使用 XML 格式将配置文件从 Zip 文件中导出或将其导入 Zip 文件。这样可以在导入配置文件之前创建、编辑或删除这些 Zip 文件中的配置文件设置。
CLI 未提供与以下 GUI 功能等效的功能:
浏览元素层次结构。
查看合并的元素配置文件设置。
生成报表。
访问基于文件的后端或混合式后端(CLI 只提供对 LDAP 后端的访问)。
CLI 包含 pgtool 命令,此命令以单行命令模式运行,每次执行一个命令。pgtool 包含很多子命令、选项和操作数,在命令摘要中对这些内容进行了介绍。可以使用完整的关键字或关键字缩写来指定选项。以下命令描述中使用的是完整关键字,但在表 3–2 中提供了与这些命令相对应的快捷键。
要定位和查询包含元素和配置文件的数据存储,必须提供引导信息。所需的引导信息包括服务器、端口号、基本标识名 (Distinguished Name, DN) 和管理员的用户名。可以在命令行或引导文件中指定此信息。
可以从属性文件中读取引导信息。可以在命令行中使用 --file 选项指定此文件的位置。
--file=<bootstrap file>:引导文件的全限定路径。默认文件为 $HOME/pgtool.properties。
示例:--file=/var/opt/apoc/cli.properties。
在 《Sun Desktop Manager 1.0 安装指南》中的附录 A “配置参数”中介绍了该文件的格式。
可以在命令行中使用 --url 和 --username 选项指定引导。
--url=<url>:用于标识数据存储的 URL。URL 的格式为 ldap://<hostname>:<port>/<base name>,其中 <hostname> 是服务器名称(默认值为 localhost),<port> 是服务器上的端口号(默认值为 389),<base name> 是基本条目的标识名。
示例:--url=ldap://server1.sun.com:399/o=apoc。
--username=<username>:管理员的用户名,以存储后端使用的格式表示。然后将提示管理员输入密码。如果未使用此选项,并且管理员未使用 pgtool login 子命令,则会提示管理员输入用户名和密码。
示例:--username=“jmonroe”。
每次执行一个命令时,都需要输入用户名和密码。
CLI 提供了一个 login 命令,允许将用户名/密码对存储在管理员主目录的证书文件中。此文件名为 .apocpass。.apocpass 文件具有受限制的访问权限。
如果成功通过验证,则将用户名/密码对条目添加到 .apocpass 文件中。此用户名/密码对的关键字包括服务器/端口/基本 DN 和用户名,这样可以在同一文件中存储其他后端的用户名/密码对。
成功运行 login 命令后,即可执行其他 CLI 命令,而无需再指定用户名或密码。
有关如何使用 login 命令的详细信息,请参见登录。
对于其他命令,CLI 将首先检查是否存在当前用户的 .apocpass 文件。
如果此文件不存在,将提示用户输入用户名和密码。如果输入的用户名和密码成功通过验证,将执行命令。
如果不存在证书文件,但已在命令行中指定了用户名,CLI 将查找与此主机、端口、基本 DN 和用户名相对应的条目。如果存在对应的条目,将使用存储的用户 DN 和密码来执行命令;否则,将提示用户输入密码。
如果未在命令行中指定用户名,将在 .apocpass 文件中搜索使用此主机/端口和基本 DN 组合的关键字。如果此组合只有一个对应的条目,将使用存储的用户 DN 和密码来执行命令。如果存在多个条目,将提示用户输入用户名。如果输入的用户名与某个条目匹配,将使用存储的用户 DN 和密码来执行命令。如果输入的用户名与任何条目都不匹配,将提示用户输入密码。
提示用户输入密码之后,将使用 .apocpass 文件中与此主机/端口/基本 DN 组合相对应的条目来验证用户名和密码。如果不存在这样的条目,将使用匿名访问进行验证。
每次运行命令时都将创建并初始化与数据存储的连接,并在执行完命令后立即退出。如果命令退出时报告错误,则说明未对配置文件应用任何更改。
元素使用 LDAP 完整标识名 (Distinguished Name, DN) 表示。
示例:uid=jmonroe,ou=People,o=apoc。
本部分介绍了 Desktop Manager CLI 功能的子命令。
基于向后兼容性的考虑,CLI 使用 --entity 选项指定 Desktop Manager 用户界面中目前称为“元素”的实体。这些术语可以互换。未提供 --element 选项。
要获取所有可用的 CLI 命令的列表,请键入 pgtool --help 。
要显示版本信息,请键入 pgtool --version。
将配置文件指定给元素。
语法
add [--scope=<user|host>] [--entity=<entity>] <profile name> <target entity>
--scope=<user|host>:配置文件的范围,可以是用户或主机。如果未指定,则默认范围为用户。
--entity=<entity>:配置文件所在的元素。如果未指定,则默认为根组织或根域中的元素(由 --scope 选项确定)。
<profile name>:要指定给元素的配置文件的名称。如果在该层上不存在配置文件,或者存在多个同名同范围的配置文件,命令将会退出并报告错误。
<target entity>:将配置文件指定到的元素。
% pgtool add UserProfile1 cn=Role1,o=staff,o=apoc
将位于根组织中的配置文件 "UserProfile1" 指定给元素 "cn=Role1,o=staff,o=apoc"。
创建一个新的空配置文件。
语法
create [--name=<profile name>] [--scope=<user|host>] [--entity=<entity>] [--priority=<priority>]
--name=<profile name>:要创建的配置文件的名称。如果在该层上已经存在同名同范围的配置文件,命令将会退出并报告错误。如果未指定,命令将默认使用名称系列(例如 "NewProfile"、"NewProfile2"、 "NewProfile3"、...)中第一个可用的配置文件名称。
--scope=<user|host>:配置文件的范围,可以是用户或主机。如果未指定,命令将范围默认为用户。
--entity=<entity>:创建配置文件时所在的元素。如果未指定,命令将默认使用根组织或根域中的元素(由 --scope 选项确定)。
--priority=<priority> :用于指定配置文件优先级的正整数。如果指定的优先级与该层上具有同一范围的某个现有配置文件的优先级相同,将忽略 priority 选项。如果未指定,则创建的配置文件在该层上将具有最高的优先级。
% pgtool create --scope=host --name=NewHostProfile1
在域根中创建一个名为 "NewHostProfile1" 的配置文件,其范围为“主机”。
删除配置文件。
语法
delete --name=<profile name> [--scope=<user|host>] [--entity=<entity>]
--name=<profile name>:要删除的配置文件的名称。必须指定此选项。如果在该层上不存在配置文件,或者存在多个同名同范围的配置文件,命令将会退出并报告错误。
--scope=<user|host>:配置文件的范围,可以是用户或主机。如果未指定,则默认范围为用户。
--entity=<entity>:配置文件所在的元素。如果未指定,则默认为根组织或根域中的元素(由 --scope 选项确定)。
% pgtool delete --scope=host --name=renamedNewHostProfile1
删除位于根域中的配置文件 "renamedNewHostProfile1"。
使用 Zip 文件格式将包含在某个配置文件中的多个配置文件导出到指定目标。
语法
export --name=<profile name> [--scope=<user|host>] [--entity=<entity>] <target>
--name=<profile name>:要导出的配置文件的名称。必须指定此选项。如果在该层上不存在配置文件,或者存在多个同名同范围的配置文件,命令将会退出并报告错误。
--scope=<user|host>:配置文件的范围,可以是用户或主机。如果未指定,则默认范围为用户。
--entity=<entity>:配置文件所在的元素。如果未指定,则默认为根组织或根域中的元素(由 --scope 选项确定)。
<target>:要从中导出配置文件的 Zip 文件的完整路径。如果该路径未指定任何文件名,则默认使用 <profile name>.zip 作为文件名。如果目标文件不可写,命令将会退出并报告错误。
% pgtool export --scope=host --name=HostProfile1 /tmp/newdir
将 "HostProfile1"(位于根域中)导出到 HostProfile1.zip (已在新目录 /tmp/newdir 中创建)。
从指定的源中导入以 Zip 文件格式存储的配置文件。源中包含要导入该配置文件的配置文件。
语法
import [--name=<profile name>] [--scope=<user|host>] [--entity=<entity>] [--priority=<priority>] <source>
--name=<profile name>:要导入的配置文件的名称。如果未指定,则默认使用 .zip 源文件的名称。如果在该层上已经存在同名同范围的配置文件,则会将其覆盖。
--scope=<user|host>:配置文件的范围,可以是用户或主机。如果未指定,则默认范围为用户。
--entity=<entity>:配置文件所在的元素。如果未指定,则默认为根组织或根域中的元素(由 --scope 选项确定)。
--priority=<priority> :用于指定配置文件优先级的正整数。如果指定的优先级与该层上具有同一范围的某个现有配置文件的优先级相同,将忽略此选项。如果未指定,则导入的配置文件在该层上将具有最高的优先级。
<source>:Zip 文件(包含要导入的配置文件)的完整路径。
% pgtool import --scope=host --name=NewHostProfile1 --priority=7 /tmp/HostProfile1.zip
从 HostProfile1.zip 导入名为 "NewHostProfile1"、范围为 "host"、优先级为 "7" 且位于根域中的配置文件。
列出所有配置文件或元素/配置文件指定。
如果 --name 选项和 --entity 选项都未指定,则列出所有用户配置文件或主机配置文件(由 - -scope 选项确定)。
如果指定了 --name 选项,则列出指定给此配置文件的所有元素。
如果指定了 --entity 选项,则列出指定给特定元素的所有配置文件。
语法
list [--scope=<user|host>] [--entity=<entity>] [--name =<profile name>]
--scope=<user|host>:配置文件的范围,可以是用户或主机。如果未指定,则默认范围为用户。
--entity=<entity>:如果指定了 --name 选项,则为配置文件所在的元素。否则为要列出的配置文件所指定到的元素。在前一种情况下如果未指定此条目,则默认使用根组织或根域中的元素(由 --scope 选项确定)。
--name=<profile name>:配置文件的名称(将列出指定给该配置文件的元素)。如果在该层上不存在配置文件,或者存在多个同名同范围的配置文件,命令将会退出并报告错误。
% pgtool list
列出指定给根组织的配置文件。
% pgtool list --scope=host --name=HostProfile1
列出指定给位于根域中的配置文件 "HostProfile1" 的元素。
在成功通过此数据存储的验证之后,将会存储该数据存储后端的用户名和密码。此用户名和密码以后可用于调用 pgtool 命令。
证书存储在管理员主目录中名为 .apocpass 的文件中。如果此文件已存在但不具有正确的权限,命令将退出并报告错误。
如果指定了用户名,则提示管理员输入密码,否则将提示管理员输入用户名和密码。将使用数据存储的匿名访问来验证用户名和密码。如果不支持匿名访问,将提示管理员输入授权的用户名和密码。如果授权的用户名未通过验证,命令将退出并报告错误。
通过验证之后,会使用由主机/端口/基本 DN 和用户名组成的关键字,将用户名/密码对条目存储在管理员的 .apocpass 文件中,以便可以在同一文件中为其他后端存储用户名/密码对 。
可以在命令行中指定引导信息,即使用 - -file 选项指定包含此信息的文件,或者使用 --url 选项直接指定此信息。有关引导的详细信息,请参见 CLI 所需的引导信息。
如果引导信息不可用或者无法创建证书文件,命令将会退出并报告错误。
如果成功创建了证书文件,则不必为使用此存储后端的后续 pgtool 命令指定用户名和密码。此时将使用存储在证书文件中的用户名和密码信息。
语法
login [--username=<username>] [--file=<bootstrap file>] [--url=<url>]
--username=<username>:以存储后端使用的格式表示的管理员用户名,例如 "jmonroe"。
--file=<bootstrap file>:引导文件的全限定路径。默认文件为 $HOME/pgtool.properties。此选项与 --url 选项不兼容。
--url=<url>:用于标识数据存储的 URL。URL 的格式为 ldap://<hostname>:<port>/<base name>,其中 <hostname> 是服务器名称(默认值为 localhost),<port> 是服务器上的端口号(默认值为 389),<base name> 是基本条目的标识名。
% pgtool login --username=jmonroe [Enter the correct password when prompted]
创建具有 "jmonroe" 和 "password" 条目的 ~/.apocpass 文件,此文件的权限为 600。有关要连接的后端的信息,请参见默认引导文件 ~/pgtool.properties。
更改配置文件的优先级。
语法
modify [--scope=<user|host>] [--entity=<entity>] <profile name> <priority>
--scope=<user|host>:配置文件的范围,可以是用户或主机。如果未指定,则默认范围为用户。
--entity=<entity>:配置文件所在的元素。如果未指定,则默认为根组织或根域中的元素(由 --scope 选项确定)。
<profile name>:要更改优先级的配置文件的名称。如果在该层上不存在配置文件,或者存在多个同名同范围的配置文件,命令将会退出并报告错误。
<priority>:用于指定配置文件优先级的正整数。如果指定的优先级与该层上具有同一范围的某个现有配置文件的优先级相同,命令将会退出并报告错误。
% pgtool modify UserProfile1 15
将位于根组织中的 "UserProfile1" 的优先级更改为 15。
为元素取消指定配置文件。
语法
remove [--scope=<user|host>] [--entity=<entity>] <profile name> <target entity>
--scope=<user|host>:配置文件的范围,可以是用户或主机。如果未指定,则默认范围为用户。
--entity=<entity>:配置文件所在的元素。如果未指定,则默认为根组织或根域中的元素(由 --scope 选项确定)。
<profile name>:要为目标元素取消指定的配置文件的名称。
<target entity>:要取消指定配置文件的元素。
% pgtool remove UserProfile1 cn=Role1,o=staff,o=apoc
为元素 "cn=Role1,o=staff,o=apoc" 取消指定位于根组织中的配置文件 "UserProfile1" 。
重命名配置文件。
语法
rename [--scope=<user|host>] [--entity=<entity>] <profile name> <newname>
--scope=<user|host>:配置文件的范围,可以是用户或主机。如果未指定,则默认范围为用户。
--entity=<entity>:配置文件所在的元素。如果未指定,则默认为根组织或根域中的元素(由 --scope 选项确定)。
<profile name>:要重命名的配置文件的当前名称。
<newname>:配置文件的新名称。如果在同一层上已经存在同名同范围的配置文件,命令将会退出并报告错误。
% pgtool rename NewUserProfile2 renamedNewUserProfile2
将根组织中的配置文件 "NewUserProfile2" 重命名为 "renamedNewUserProfile2"。
命令 |
描述 |
---|---|
add |
将配置文件指定给元素。 |
create |
创建一个新的空配置文件。 |
delete |
删除配置文件。 |
export |
使用 Zip 文件格式将包含在某个配置文件中的多个配置文件导出到指定目标。 |
import |
从指定的源中导入以 Zip 文件格式存储的配置文件。源中包含要导入该配置文件的配置文件。 |
list |
列出所有配置文件、指定给某个元素的配置文件,或者已经指定了某个配置文件的元素。 |
login |
将此数据存储后端的用户名和密码存储在管理员主目录的一个文件中。此用户名和密码以后可用于调用 pgtool 命令。 |
modify |
更改配置文件的优先级。 |
remove |
为元素取消指定配置文件。 |
rename |
重命名配置文件。 |
表 3–2 选项
选项 |
描述 |
---|---|
-b <base name>, --base=<base name>, 已过时 |
存储后端的根条目。此基本条目的格式由使用的存储后端确定。例如,根条目为 o=apoc 的 LDAP 存储后端:--base o=apoc。 已过时:请改用 --url 选项 |
-e <entity>, --entity=<entity> |
表示用户、角色、组织、主机或域元素。元素的条目格式由使用的存储后端确定。例如,用户为 "jmonroe" 的 LDAP 存储后端:-e uid=jmonroe,ou=People,o=Staff,o=apoc 。 |
-f <file>, --file=<file> |
文件的全限定路径,该文件详细列出了执行此命令时使用的引导信息。例如:-f /var/opt/apoc/cli.properties 。 |
-h <hostname>, --hostname=<hostname> , 已过时 |
存储后端的主机名。例如:--host=server1.sun.com 。 已过时:请改用 --url 选项 |
-i <priority>, --priority=<priority> |
用于指定配置文件优先级的正整数。例如: -i 12。 |
-l <url>, --url=<url> |
用于标识数据存储的 URL。URL 的格式为 ldap://<hostname>:<port>/<base name>,其中 <hostname> 是服务器名称(默认值为 localhost),<port> 是服务器上的端口号(默认值为 389),<base name> 是基本条目的标识名。例如:--url=ldap://server1.sun.com:399/o=apoc。 |
-m <name>, --name=<name> |
配置文件的名称。例如:--name=UserProfile1。 |
-p <port>, --port=<port>, 已过时 |
存储后端的端口号。例如:-p 399。 已过时:请改用 --url 选项 |
-s <scope>, --scope=<scope> |
配置文件的范围,可以是用户或主机。如果未指定,则默认范围为用户。例如:--scope=host。 |
-t <type>, --type=<type>, 已过时 |
存储后端的类型。默认类型为 LDAP。例如: -t LDAP。 已过时:请改用 --url 选项 |
-u <username>, --username=<username> |
管理员的用户名,以存储后端使用的格式表示。然后将提示管理员输入密码。如果未使用此选项,并且管理员未使用 pgtool login 子命令,将提示管理员输入用户名和密码。例如: --username=jmonroe。 |
-?, --help |
显示帮助信息 |
-V, --version |
显示版本信息。 |