一种存储环境IP权限控制方法与系统与流程

文档序号:16245905发布日期:2018-12-11 23:34阅读:346来源:国知局
一种存储环境IP权限控制方法与系统与流程

本发明涉及存储权限控制技术领域,特别是一种存储环境ip权限控制方法与系统。

背景技术

linux系统中,多用户以及多任务的操作系统决定了常常会有多人同时使用这部主机工作,linux中的每个用户都至少属于一个用户组,以保证对一个用户组中的所有用户进行集中管理。

有三种不同类型的用户可对目录和文件进行操作:

文件所有者,能够设定同组用户和其他用户对该文件的访问权限,一般来说是文件的创建者;

同组用户,具有相同性质的所有用户,被系统管理员分在同一组,文件所有者或系统管理员可将文件的权限赋予组内的其他用户;

其他用户,文件所有者或系统管理员还可以将文件的访问权限赋予系统中所有其他的用户,这样系统中每一位用户可能都能访问某一文件或目录。

而由于客户场景越来越复杂,原有的以用户、用户组为基础的权限控制已经不能满足客户的需求,因此急需一种针对特定ip进行权限控制的方法,以满足用户多元化的要求。



技术实现要素:

本发明的目的是提供一种存储环境ip权限控制方法与系统,旨在解决现有技术中以用户、用户组为基础的权限控制不能满足复杂场景的问题,实现针对特定的ip进行权限控制,满足用户多元化的要求。

为达到上述技术目的,本发明提供了一种存储环境ip权限控制方法,包括以下步骤:

s1、检查fuse客户端是否开启ip权限校验;

s2、检查是否超过500条acl用户;

s3、校验调用该用户是否有权限设置扩展属性xattr;

s4、查看是否开启acl属性;

s5、向mds发请求,设置ip权限。

优选地,所述检查fuse客户端是否开启ip权限校验具体操作为:

发出校验want权限的请求;

由client_ip_acl函数开启ip权限校验,若返回值为false,则为用户/用户组权限,即结束校验流程,若返回值为true,则进入下一步;

由函数is_super_ip检查是否是超级ip,若返回值为true则直接返回,若返回值为false,由函数posix_ip_acl_permission找到对应ip返回结果。

优选地,所述属性xattr存放ipacl,存放方法为:

利用setxacl命令行将ipacl存放在xattr属性中:

setxacl–mi:ip地址:权限文件/目录

采用新的参数i设置为针对某个ip的权限,复用原有的用户组id号/用户id号,然后将ip地址转化成对应的整形数据进行存储。

优选地,所述方法还包括实现多客户端同步acl权限,具体操作为:

通过fuse客户端a设置目录的acl权限,设置成功且生效;

通过fuse客户端b查看此目录的acl权限;

通过cifs客户端,用acl权限设定的ip访问此目录的文件。

本发明还提供了一种存储环境ip权限控制系统,所述系统包括:

ip权限开启模块,用于检查fuse客户端是否开启ip权限校验;

用户数量检查模块,用于检查是否超过500条acl用户;

权限校验模块,用于校验调用该用户是否有权限设置扩展属性xattr;

acl属性开启模块,用于查看是否开启acl属性;

ip权限设置模块,用于向mds发请求,设置ip权限。

优选地,所述ip权限开启模块包括:

权限请求单元,用于发出校验want权限的请求;

权限校验开启单元,用于由client_ip_acl函数开启ip权限校验;

超级ip校验单元,用于由函数is_super_ip检查是否是超级ip。

优选地,所述所述属性xattr用于存放ipacl。

优选地,所述系统还包括权限同步模块,用于实现多客户端同步acl权限,包括:

客户端a权限设置单元,用于通过fuse客户端a设置目录的acl权限,设置成功且生效;

客户端b权限查看单元,用于通过fuse客户端b查看此目录的acl权限;

文件访问单元,用于通过cifs客户端,用acl权限设定的ip访问此目录的文件。

发明内容中提供的效果仅仅是实施例的效果,而不是发明所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:

与现有技术相比,本发明通过检查fuse客户端是否开启ip权限校验并校验调用该用户是否有权限设置扩展属性xattr,然后查看是否开启acl属性,开启后向mds发请求,设置ip权限,从而实现针对特定的ip进行权限控制,不同于以往以用户、用户组为基础的权限控制,解决了现有技术中以用户、用户组为基础的权限控制不能满足复杂场景的问题,支持多客户端数据同步问题,例如在客户端a设置,在客户端b使用生效,另外保证原有acl功能的需求仍满足,例如支持最大500条acl的限制,保证nas协议的支持,包括cifs/fuse客户端,满足用户多元化的要求。

附图说明

图1为本发明实施例中所提供的一种存储环境ip权限控制方法流程图;

图2为本发明实施例中所提供的一种存储环境ip权限控制系统结构框图。

具体实施方式

为了能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。

下面结合附图对本发明实施例所提供的一种存储环境ip权限控制方法与系统进行详细说明。

如图1所示,本发明实施例公开了一种存储环境ip权限控制方法,包括以下步骤:

s1、检查fuse客户端是否开启ip权限校验;

s2、检查是否超过500条acl用户;

s3、校验调用该用户是否有权限设置扩展属性xattr;

s4、查看是否开启acl属性;

s5、向mds发请求,设置ip权限。

acl(accesscontrollist,访问控制列表)是路由器和交换机接口的指令列表,用来控制端口进出的数据包。acl适用于所有的被路由协议,如ip、ipx、appletalk等。

配置acl后,可以限制网络流量,允许特定设备访问,指定转发特定端口数据包等。如可以配置acl,禁止局域网内的设备访问外部公共网络,或者只能使用ftp服务。acl既可以在路由器上配置,也可以在具有acl功能的业务软件上进行配置。

利用setxacl命令行将ipacl存放在xattr属性中:

setxacl–mi:ip地址:权限文件/目录

采用新的参数i设置为针对某个ip的权限,复用原有的用户组id号/用户id号,然后将ip地址转化成对应的整形数据进行存储。

集群内部各存储节点的ip称为超级ip,其权限相当于用户、用户组acl中的root用户,只有超级ip才能对文件和目录设置ipacl,其他ip都不能设置。当开启ipacl校验时用户、用户组acl不再生效,以ip权限为准。因此需要对ip权限进行查询。

ip权限查询依然沿用普通acl流程,inode_permission方法是ip权限校验的核心,当进行unlink或者是create操作时,系统会发出校验want权限的请求,由client_ip_acl函数处理,开启ip权限校验,若返回值为false,则为用户/用户组权限,即结束校验流程,若返回值为true,则由函数is_super_ip检查是否是超级ip,若返回值为true则直接返回,若返回值为false,由函数posix_ip_acl_permission找到对应ip返回结果。

检查是否超过500条acl用户,如果返回值为true,则返回-enospc,如果返回值为false,则校验调用该用户是否有权限设置扩展属性xattr;查看是否开启acl属性,若client_acl_type==“posix_acl”,则acl开启,执行下一步;否则,直接返回-eopnotsupp;

向mds发请求,设置ip权限。

所述方法还包括实现多客户端同步acl权限:

首先,通过fuse客户端a设置目录的acl权限,设置成功且生效;然后,通过fuse客户端b查看此目录的acl权限;最后,通过cifs客户端,用acl权限设定的ip访问此目录的文件。

本发明实施例通过检查fuse客户端是否开启ip权限校验并校验调用该用户是否有权限设置扩展属性xattr,然后查看是否开启acl属性,开启后向mds发请求,设置ip权限,从而实现针对特定的ip进行权限控制,不同于以往以用户、用户组为基础的权限控制,解决了现有技术中以用户、用户组为基础的权限控制不能满足复杂场景的问题,支持多客户端数据同步问题,例如在客户端a设置,在客户端b使用生效,另外保证原有acl功能的需求仍满足,例如支持最大500条acl的限制,保证nas协议的支持,包括cifs/fuse客户端,满足用户多元化的要求。

如图2所示,本发明实施例还公开了一种存储环境ip权限控制系统,所述系统包括:

ip权限开启模块,用于检查fuse客户端是否开启ip权限校验;

用户数量检查模块,用于检查是否超过500条acl用户;

权限校验模块,用于校验调用该用户是否有权限设置扩展属性xattr;所述所述属性xattr用于存放ipacl。

acl属性开启模块,用于查看是否开启acl属性;

ip权限设置模块,用于向mds发请求,设置ip权限。

所述ip权限开启模块包括:

权限请求单元,用于发出校验want权限的请求;

权限校验开启单元,用于由client_ip_acl函数开启ip权限校验;

超级ip校验单元,用于由函数is_super_ip检查是否是超级ip。

所述系统还包括权限同步模块,用于实现多客户端同步acl权限,包括:

客户端a权限设置单元,用于通过fuse客户端a设置目录的acl权限,设置成功且生效;

客户端b权限查看单元,用于通过fuse客户端b查看此目录的acl权限;

文件访问单元,用于通过cifs客户端,用acl权限设定的ip访问此目录的文件。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1