commandPath MFT 属性

使用 commandPath 属性来指定 Managed File Transfer 可以从中运行命令的位置。 设置该属性时务必谨慎,因为能够向代理发送命令的远程客户机系统可以有效调用指定的某个 commandPath 中的任何命令。

您可以从 Managed File Transfer的受管传输和受管调用功能指定要在其中运行代理的系统上运行的命令。 请参阅 程序调用嵌套元素 以获取信息。 但是,命令必须位于 commandPath 代理程序属性所引用的路径上。

如果指定的命令不是标准命令,那么 Managed File Transfer 会尝试在命令路径上查找匹配的命令。 如果命令路径中存在多条匹配的命令,那么会使用第一条匹配的命令。

缺省情况下, commandPath 属性为空,因此代理程序无法调用任何命令。

指定 commandPath 代理属性,如下所示:
commandPath=command_directory_name 
separator...command_directory_name
[z/OS]或仅用于 z/OS® ,请注明:
commandPath=command_directory_name_or_data_set_name_prefix 
separator...command_directory_name_or_data_set_name_prefix
其中:
  • command_directory_name 表示可以运行命令的目录路径。
  • [z/OS]命令目录名或数据集名称前缀 is a z/OS UNIX System Services directory path for commands that can be run, or a data set name prefix, that starts with //. 您可以选择使用标准或非标准的数据集名称前缀(即 //'HLQ...'//HLQ... 的形式)。 以 //'HLQ()...'//HLQ()... 形式指定分区数据集。 使用数据集只能指定 JCL 脚本命令。
  • separator 是特定于平台的分隔符。
[AIX][Linux]例如,在 Linux®AIX® 系统上,如果要运行位于 /home/user/cmds1/home/user/cmds2 目录中的命令,请按如下方式设置 commandPath 代理属性:
commandPath=/home/user/cmds1:/home/user/cmds2
[Windows]例如,在 Windows 系统中,如果要运行位于 C:\File Transfer\commandsC:\File Transfer\agent commands 目录中的命令,请按如下方式设置 commandPath 代理属性:
commandPath=C:\\File Transfer\\commands;C:\\File Transfer\\agent commands
Windows 系统中,分隔符反斜杠 (\) 必须转义,并输入双反斜杠 (\\)。反斜线字符 (\) 也可以用正斜线 (/) 代替。
[z/OS]例如,在 z/OS 上,如果要运行的命令是
  • 位于 /home/user/cmds1/home/user/cmds2 目录下
  • 位于以 //'USER.CMD1', //CMD2, 开头的数据集中
  • 是名为 //'USER.CMDS' 的标准 PSD 的成员
请按照以下方式设置 commandPath 代理属性:
commandPath=/home/user/cmds1:/home/user/cmds2://'USER.CMD1'://CMD2://'USER.CMDS()'
重要信息: 设置此属性时必须非常小心,因为可以从能够将命令发送到代理程序的远程客户机系统调用其中一个指定 commandPaths 中的任何命令。 为此,缺省情况下,当您指定 commandPath 属性时,会配置沙箱,以便针对传输自动拒绝访问所有 commandPath 目录(及其子目录):
  • 如果代理配置为使用代理沙箱,那么在代理启动时会自动将 commandPath 目录添加到拒绝的目录列表。
  • 如果代理配置了一个或多个用户沙箱,那么在代理启动时会将 commandPath 目录作为 <exclude> 元素添加到每个用户沙箱的 <read><write> 元素。
  • 如果未将代理配置为使用代理沙箱或用户沙箱,那么在代理启动时会创建一个新的代理沙箱,其中将 commandPath 目录指定为拒绝的目录。
您可以覆盖此行为以兼容以下发行版:
  • IBM® WebSphere® MQ File Transfer Edition.请注意 IBM WebSphere MQ File Transfer Edition (FTE) 不再是受支持的产品。 要从 FTE 迁移到 IBM MQ 中的托管文件传输组件,请参阅迁移托管文件传输
  • IBM WebSphere MQ 7.5.0 Fix Pack 1Managed File Transfer 组件(或更早版本)。
  • IBM WebSphere MQ 7.5.0 Fix Pack 2 Managed File Transfer 组件(或更高版本)上未设置安装属性 enableFunctionalFixPack=7502 的安装。
您可以通过向 agent.properties 文件添加以下属性来覆盖此行为:
addCommandPathToSandbox=false
如果 addCommandPathToSandbox 属性存在且设置为 false,那么会发生以下行为:
  • 如果代理配置为使用代理沙箱并且沙箱未指定任何允许的目录,那么在代理启动时会自动将 commandPath 目录添加到拒绝的目录列表。
  • 如果将代理配置为使用代理沙箱并且沙箱已指定一个或多个允许的目录,那么在代理启动时不会将 commandPath 目录添加到拒绝的目录列表。
  • 如果代理配置了一个或多个用户沙箱,那么用户沙箱不会发生更改,并且不会将 commandPath 目录作为 <exclude> 元素添加到每个用户沙箱的 <read><write> 元素。
  • 如果未将代理配置为使用代理沙箱或用户沙箱,那么在代理启动时会创建一个新的代理沙箱,其中将 commandPath 目录指定为拒绝的目录。