参考以下内容https://www.h3c.com/cn/d_202508/2619829_30005_80.htm 中源于user role的内容
rule命令用来为用户角色创建一条规则。
undo rule命令用来为用户角色删除规则。
【命令】
rule number { command-rule-group command-rule-group-name | { deny | permit } { command command-string | { execute | read | write } * { feature [ feature-name ] | feature-group feature-group-name | oid oid-string | xml-element [ xml-string ] } } }
undo rule { number | all }
【缺省情况】
新创建的用户角色中未定义规则,即当前用户角色无任何权限。
【视图】
用户角色视图
【缺省用户角色】
network-admin
【参数】
number:权限规则编号,取值范围为1~256。
command-rule-group command-rule-group-name:配置基于命令规则组的规则。command-rule-group-name表示命令规则组名称,为1~31个字符的字符串,区分大小写。
deny:禁止执行指定的命令、XML元素或MIB节点OID。
permit:允许执行指定的命令、XML元素或MIB节点OID。
command command-string:配置基于命令的规则。command-string表示命令特征字符串,为1~128个字符的字符串,区分大小写,可以是特定的一条命令行,也可以是用星号(*)通配符表示的一批命令,可包含空格、Tab(它们用于分隔关键字、参数以及输入的字符),以及所有可打印字符。当命令特征字符串中含有“[”或“]”字符时,需要在该字符前加上转义符“\”。例如,命令特征字符串为statistics[ifindex="*"],则需要输入statistics\[ifindex="*"\]。
execute:表示执行类型的命令、XML元素或MIB节点OID。用于执行特定的程序或功能,执行类型的命令如ping命令。
read:表示读类型的命令、XML元素或MIB节点OID,用于显示系统配置和维护信息。读类型的命如display、dir、more和pwd命令。
write:表示写类型的命令、XML元素或MIB节点OID,用于对系统进行配置。写类型的命如ssh server enable命令。
feature [ feature-name ]:配置基于特性的规则。feature-name表示系统预定义的特性名称,区分大小写。若不指定特性名称,则表示所有特性。
feature-group feature-group-name:配置基于特性组的规则。feature-group-name表示特性组名称,为1~31个字符的字符串,区分大小写。只有特性组创建后,基于特性组的规则才能生效。使用display role feature-group命令可以查看已创建的特性组信息。
oid oid-string:配置基于MIB节点OID(Object Identifier,对象标识符)的规则。oid-string表示允许操作的OID,为1~255个字符的字符串,不区分大小写。OID是由一系列的整数组成,标明节点在MIB树中的位置,它能唯一地标识一个MIB库中的对象。例如:1.3.6.1.4.1.25506.8.35.14.19.1.1。
xml-element [ xml-string ]:配置基于XML元素的规则。xml-string表示允许操作的XML元素的XPath,为1~255个字符的字符串,不区分大小写,以“/”为分隔符来分隔不同级别的菜单,例如:Interfaces/Index/Name;若不指定xml-string参数,则表示对所有XML元素生效。
all:指定所有权限规则。
【使用指导】
可为一个用户角色定义以下几种类型的规则:
· 禁止或允许执行指定命令规则组中定义的命令规则。
· 禁止或允许执行特定的命令行。
· 禁止或允许执行指定或所有特性的某一类或某几类命令。
· 禁止或允许执行某个特性组中所有特性的某一类或某几类命令。
· 禁止或允许执行指定所有或指定的MIB节点OID。
· 禁止或允许执行所有XML元素或某几类XML元素。
每个用户角色中最多可以配置256条规则,系统中可以配置的用户角色规则总数不能超过1024。
如果用户角色规则中包含了基于命令规则组的规则,那么系统中可以配置的用户角色规则总数包含命令规则组中配置的规则条数与用户角色下配置的规则条数的总和,此总和不能超过1024。需要注意的是,若基于同一个命令规则组多次定义了不同的用户角色规则,则此命令规则组中配置的规则条数也会被多次重复计算到系统中允许配置的用户角色规则总数内。
访问文件系统的命令,受基于文件系统特性规则以及具体命令规则的双重控制。
对于需要将输出信息重定向到文件中保存的命令,只有在用户角色被授权了文件系统写权限后才允许执行。
为用户角色定义规则时,需要注意的是:
· 如果指定编号的规则不存在,则表示创建一条新的规则;如果指定编号的规则已存在,则表示对已有的规则进行修改。修改后的规则对于当前已经在线的用户不生效,对于之后使用该角色登录设备的用户生效。但通过以下几种方式使用该角色登录设备的用户,修改后的规则对于当前已经在线的用户立即生效:
¡ SNMP
¡ NETCONF over SOAP
¡ NETCONF over SSH
· 一个用户角色中允许创建多条规则,各规则以创建时指定的编号为唯一标识,被授权该角色的用户可以执行的命令为这些规则定义的可执行命令的并集。若这些规则定义的权限内容有冲突,则规则编号大的有效。例如,规则1允许执行命令A,规则2允许执行命令B,规则3禁止执行命令A,则最终规则2和规则3生效,即禁止执行命令A,允许执行命令B。
· 若同时配置了基于命令规则组的规则和基于命令的规则,当这两类规则中定义的部分命令行权限发生冲突时,规则编号较大者所定义的命令行权限有效,无冲突的命令规则分别生效。
· 在同时存在系统预定义规则(以sys-x为权限规则编号,x为整数值)和自定义规则的用户角色中,若预定义规则定义的权限内容与自定义规则定义的权限内容有冲突,则以自定义规则为准。
输入命令特征字符串时,需要遵循以下规则:
(1) 段(segment)的划分
¡ 若要描述多级视图下的命令,则需要使用分号(;)将命令特征字符串分成多个段,每一个段代表一个或一系列命令,后一个段中的命令是执行前一个段中命令所进入视图下的命令。一个段中可以包含多个星号(*),每个星号(*)代表了0个或多个任意字符。例如:命令特征字符串“system ; interface * ; ip * ;”代表从系统视图进入到任意接口视图后,以ip开头的所有命令。
¡ 除最后一个段外,其余段中的命令应为描述如何进入子视图的命令特征字符串。
¡ 一个段中必须至少出现一个可打印字符,不能全部为空格或Tab。
(2) 分号的使用
¡ 在输入命令特征字符串时必须指定该命令所在的视图,进入各视图的命令特征字符串由分号分隔。但是,对于能在任意视图下执行的命令(例如display命令)以及用户视图下的命令(例如dir命令),在配置包含此类命令的规则时,不需要在规则的命令匹配字符串中指定其所在的视图。
¡ 当最后一个段中的最后一个可见字符为分号时,表示所指的命令范围不再扩展,否则将向子视图中的命令扩展。例如:命令特征字符串“system ; radius scheme * ;”代表系统视图下以radius scheme开头的所有命令;命令特征字符串“system ; radius scheme * ”代表系统视图下以radius scheme开头的所有命令,以及进入子视图(RADIUS方案视图)下的所有命令。
(3) 星号的使用
¡ 当星号(*)出现在一个段的首部时,其后面不能再出现其它可打印字符,且该段必须是命令特征字符串的最后一个段。例如:命令特征字符串“system ; *”就代表了系统视图下的所有命令,以及所有子视图下的命令。
¡ 当星号(*)出现在一个段的中间时,该段必须是命令特征字符串的最后一个段。例如:命令特征字符串“debugging * event”就代表了用户视图下所有模块的事件调试信息开关命令。
(4) 前缀匹配
命令关键字与命令特征字符串是采用前缀匹配算法进行匹配的,即只要命令行中关键字的首部若干连续字符或全部字符与规则中定义的关键字相匹配,就认为该命令行与此规则匹配。因此,命令特征字符串中可以包括完整的或部分的命令关键字。例如,若规则“rule 1 deny command dis mpls lsp protocol static verbose”生效,则命令display mpls lsp protocol static verbose和命令display mpls lsp protocol static-cr verbose都会被禁止执行。
对于基于命令的规则,有以下使用注意事项:
· 基于命令的规则只对指定视图下的命令生效。若用户输入的命令在当前视图下不存在而在其父视图下被查找到时,用于控制当前视图下的命令的规则不会对其父视图下的命令执行权限进行控制。例如,定义一条规则“rule 1 deny command system ; interface * ; *”禁止用户执行接口视图下的任何命令。当用户在接口视图下输入命令acl number 3000时,该命令仍然可以成功执行,因为系统在接口视图下搜索不到指定的acl命令时,会回溯到系统视图(父视图)下执行,此时该规则对此命令不生效。
· display命令中的重定向符(“|”、“>”、“>>”)及其后面的关键字不被作为命令行关键字参与规则的匹配。例如,若规则“rule 1 permit command display debugging”生效,则命令display debugging > log是被允许执行的,其中的关键字> log将被忽略,RBAC只对重定向符前面的命令行display debugging进行匹配。但是,如果在规则中配置了重定向符,则RBAC会将其作为普通字符处理。例如,若规则“rule 1 permit command display debugging > log”生效,则命令display debugging > log将会匹配失败,因为其中的关键字> log被RBAC忽略了,最终是命令display debugging与规则进行匹配。因此,配置规则时不要使用重定向符。
进行基于OID的规则的匹配时,遵循以下规则:
· 与用户访问的OID形成最长匹配的规则生效。例如用户访问的OID为1.3.6.1.4.1.25506.141.3.0.1,角色中存在“rule 1 permit read write oid 1.3.6”,“rule 2 deny read write oid 1.3.6.1.4.1”和“rule 3 permit read write oid 1.3.6.1.4”,其中rule 2与用户访问的OID形成最长匹配,则认为rule 2与OID匹配,匹配的结果为用户的此访问请求被拒绝。
· 对于定义的OID长度相同的规则,规则编号大的生效。例如用户访问的OID为1.3.6.1.4.1.25506.141.3.0.1,角色中存在“rule 1 permit read write oid 1.3.6”,“rule 2 deny read write oid 1.3.6.1.4.1”和“rule 3 permit read write oid 1.3.6.1.4.1”,其中rule 2和rule 3与访问的OID形成最长匹配,则rule 3生效,匹配的结果为用户的访问请求被允许。
【举例】
# 为用户角色role1添加一条基于命令规则组的规则,用户需遵循该命令规则组中的命令规则。
<Sysname> system-view
[Sysname] role name role1
[Sysname-role-role1] rule 8 command-rule-group cmd-group1
# 为用户角色role1创建一条规则,允许用户执行命令display acl。
<Sysname> system-view
[Sysname] role name role1
[Sysname-role-role1] rule 1 permit command display acl
# 为用户角色role1添加一条权限规则,允许用户执行所有以display开头的命令。
[Sysname-role-role1] rule 2 permit command display *
# 为用户角色role1添加一条权限规则,允许用户执行系统视图下的radius scheme aaa命令,以及使用该命令进入子视图后的所有命令。
[Sysname-role-role1] rule 3 permit command system ; radius scheme aaa
# 为用户角色role1添加一条权限规则,禁止用户执行所有特性中读类型和写类型的命令。
[Sysname-role-role1] rule 4 deny read write feature
# 为用户角色role1添加一条权限规则,禁止用户执行特性aaa中所有读类型的命令。
[Sysname-role-role1] rule 5 deny read feature aaa
# 为用户角色role1添加一条权限规则,允许执行特性组security-features中所有特性的读类型、写类型以及执行类型的命令。
[Sysname-role-role1] rule 6 permit read write execute feature-group security-features
# 为用户角色role1添加一条基于OID的规则,允许对OID为1.1.2的MIB节点进行读、写操作。
[Sysname-role-role1] rule 7 permit read write oid 1.1.2
【相关命令】
· display role
· display role command-rule-group
· display role feature
· display role feature-group
· role
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作
举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔社区有害的内容
×
不规范转载
×
举报说明
经实测,7.1无法实现限制用户进入system view,无论怎么设置,用户都可以进入system view , super 命令只是提高了权限,使system view功能更多了点。