限制和保留许可证
限制脚本对于管理全站点的 Wolfram 系统的安装非常有用.它们可以用来防止网络上未经授权的用户访问 Wolfram 系统,并且保证对于特定用户许可证的可用性. 限制脚本跨平台兼容,支持 IPv4 和 IPv6,提供了不明确的控制,并且无需编程经验就可以编写. 限制脚本的语法与用于控制对 HTML 文件的访问的网页服务器中使用的 .htaccess 文件十分相似.
保留的许可证始终被保留. 所有其它的用户或者机器无法访问它们,不论是否正在使用它们. 即使没有一个指定的用户或者机器正在运行 Wolfram 系统,所有其它用户和机器的许可证集实际上被保留的许可证的数量减少了.
AuthName Sample
AuthGroupFile mathlmgroup.txt
# Precedence
order ( allow,deny | deny,allow )
# Machine restriction
allow from ( all | machines ... )
allow hostgroup machinegroups ...
deny from ( all | machines ... )
deny hostgroup machinegroups ...
# User restriction
allow user ( all | users ... )
allow group usergroups ...
deny user ( all | users ... )
deny group usergroups ...
# License reservation
reserve [count] from machines ...
reserve [count] hostgroup machinegroups ...
reserve [count] user users ...
reserve [count] group usergroups ...
reservesub [count] user users ...
reservesub [count] group usergroups ...
定义术语
名称 | 描述 |
AuthName
Sample
| 定义脚本名称. |
AuthGroupFile
mathlmgroup
.txt
| 指定包含用户群或者机器群的定义文件. 此行仅在与 group 或者 hostgroup 关键词结合时需要. |
order ( allow,deny deny,allow )
| 定义这两个指令的优先级.后面的术语优先于前面的术语.
并且把默认访问状态设为后面的术语. 默认访问状态应用于不匹配明确规则的请求. 默认值为 order deny,allow. |
allow from ( all machines … ) | 允许来自列出的主机名、域、IP 地址和 IP 地址范围的许可证请求. |
allow hostgroup
machinegroups
…
| 允许来自列出的机器群成员的许可证请求. |
deny from ( all
machines
…
)
| 否决来自列出的主机名、域、IP 地址和 IP 地址范围的许可证请求. |
deny hostgroup
machinegroups
…
| 否决来自列出的机器群的成员的许可证请求. |
allow user ( all
users
…
)
| 允许来自列出用户的许可证请求. |
allow group
usergroups
…
| 允许来自列出用户群的许可证请求. |
deny user (all
users
…
)
| 否决来自列出的用户的许可证请求. |
deny group
usergroups
…
| 否决来自列出的用户群的成员的许可证请求. |
reserve [
count
] from
machines
…
| 对于每个列出的主机、域、IP 地址和 IP 地址范围,保留 count 前端许可证和 count 内核许可证. |
reserve [
count
] hostgroup
machinegroups
…
| 对列出的机器群的每个成员保留 count 前端许可证和和 count 内核许可证. |
reserve [
count
] user
users
…
| 对于每个列表中的用户保留 count 前端许可证和 count 内核许可证. |
reserve [
count
] group
usergroups
…
| 对于列出的用户群的每个用户,保留 count 前端许可证和 count 内核许可证. |
reservesub [
count
] from
machines
…
| 对于每个列出的主机、域、IP 地址和 IP 地址范围,保留 count 子前端许可证和 count 子内核许可证. |
reservesub [
count
] hostgroup
machinegroups
…
| 对于列出的机器群的每个成员,保留 count 子前端许可证和 count 子内核许可证. |
reservesub [
count
] user
users
…
| 对于列表中的每个用户,保留 count 子前端许可证和 count 子内核许可证. |
reservesub [
count
] group
usergroups
…
| 对于列出的用户群,保留 count 子前端许可证和 count 子内核许可证. |
许可证保留(License Reservations)
在某些情况下,可能有必要保留不相等的前端和内核许可证. 这可以通过使用下面额外指令来实现:reservefe、reservesubfe、reservekernel 和 reservesubkernel. reservefe 和 reservekernel 的语法和 reserve 的语法以及 reservesubfe 的语法相同,而且 reservesubkernel 和 reservesub 的语法相同.
子进程保留,如 reservesub、reservesubfe 和 reservesubkernel 当对于并行或者网格计算保留内核和前端时是必要的.假设在网络上的用户需要 16 个并行内核来对一个大数据集建模. 使用 reservesubkernel 指令,以防止其他用户无意中破坏建模过程.
不使用群的脚本
AuthName Sample2
order deny,allow
deny from all
allow from [192.168.2.1 192.168.2.12] 192.168.0.1 192.168.0.5
deny user all
allow user user1 user2 user3 user4 user5
使用群(Groups)的脚本
AuthName Sample3
AuthGroupFile mathlmgroup1.txt
order deny,allow
deny from all
allow hostgroup group1
deny user all
allow group group2 group3
group1: 192.168.0.1 192.168.0.5 [192.168.2.1 192.168.2.12]
group2: user1 user2 user3
group3: user4 user5
演示默认访问状态的脚本
下面脚本将允许来自所有用户和所有机器的许可证请求,除了 host1. 如果 user1 在登录到 host1 时请求一个许可证,请求将被批准. 该请求与脚本中的两个规则匹配,但是 order 指令值指明了 allow 指令具有优先级. 请注意,从 user2 登录到 host1 的许可证请求将被否决.
order 指令的值是前面脚本和下面脚本的唯一区别,但是脚本的意思正好相反. 该脚本仅允许来自 user1 的许可证请求. 从 user1 登陆到 host1 的许可证请求将被拒绝. 这种请求匹配两种规则,但是由于 deny 规则具有优先级,该请求将被拒绝.
使用许可证保留的脚本
下面脚本允许所有许可证请求.它为地址 192.168.0.1 保留三个内核许可证,以及为 user1 保留一个前端许可证和一个内核许可证. 这些许可证总是被保留,并且对于所有其它机器或者用户不可访问.
AuthName Sample6
order allow,deny
allow from all
allow user all
reservekernel 3 from 192.168.0.1
reserve user user1
下面脚本将允许所有许可证请求.它为 user1 保留两个前端许可证,两个内核许可证和四个内核子进程许可证. 这将确保 user1 对于并行计算有必要的资源. 请参阅 "Parallel Computing Tools User Guide" 以获得并行计算的更多信息.
AuthName Sample7
order allow,deny
allow from all
allow user all
reservefe 2 user user1
reservekernel 2 user user1
reservesubkernel 4 user user1
下面脚本将只允许来自 user1、user2、hostname1、hostname2、domain1.com,和在地址范围从 192.168.1.1 到 192.168.2.9 的许可证请求. 它为 hostname2 保留三个内核许可证和三个前端许可证,为从 192.168.1.1 到 192.168.2.9 的地址保留另外三个内核许可证和三个前端许可证,为 user1 保留一个内核许可证和一个前端许可证,为 user2 保留一个内核许可证和一个前端许可证. 在该脚本中,一共有八个前端许可证和八个内核许可证被保留.
AuthName Sample8
order deny,allow
deny from all
allow from hostname1 hostname2 .domain1.com [192.168.1.1 192.168.2.9]
deny user all
allow user user1 user2
reserve 3 from hostname2 [192.168.1.1 192.168.2.9]
reserve user user1 user2
reserve 3 from hostname2
reserve 3 from [192.168.1.1 192.168.2.9]
使用许可证保留和群的脚本
AuthName Sample9
AuthGroupFile mathlmgroup2.txt
order deny,allow
deny from all
allow hostgroup group1 group2
deny user all
allow group group3
reservekernel 3 hostgroup group2
reserve group group3
若要使用限制脚本,使用带有脚本路径的 -restrict 选项运行 MathLM. 用户可以对限制脚本给出任意想要的文件名(以及扩展名). 请参阅 "启动 MathLM" 以获得命令行选项的更多详细信息.