CN107451486A - 一种文件系统的权限设置方法及装置 - Google Patents
一种文件系统的权限设置方法及装置 Download PDFInfo
- Publication number
- CN107451486A CN107451486A CN201710526991.0A CN201710526991A CN107451486A CN 107451486 A CN107451486 A CN 107451486A CN 201710526991 A CN201710526991 A CN 201710526991A CN 107451486 A CN107451486 A CN 107451486A
- Authority
- CN
- China
- Prior art keywords
- node
- authority
- visited
- global
- version number
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1824—Distributed file systems implemented using Network-attached Storage [NAS] architecture
- G06F16/1827—Management specifically adapted to NAS
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6209—Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6281—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database at program execution time, where the protection is within the operating system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/101—Access control lists [ACL]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Databases & Information Systems (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本发明实施例提供一种文件系统的权限设置方法及装置,实现快速设置目录树的节点的访问权限的权限记录,通过更新的全局版本参数表示所述目录树的任意节点的一次权限设置操作。该方法中,所述待设置权限的节点的子节点的权限记录继承自所述待设置权限的节点的当前权限设置操作之后的权限记录,所以仅设置目录树的父节点的权限记录,并使父节点对应的目录下的所有文件及所有子目录都继承所述父节点的权限记录。不用遍历父节点下的所有子目录或者文件来分别设置父节点下的每一个子目录或者文件的权限记录,提高目录树的访问权限的设置效率。对父节点设置权限记录,不用对父节点对应的目录下的子目录以及文件重复设置权限记录,减少存储空间的开销。
Description
技术领域
本发明实施例涉及文件系统领域,尤其涉及一种文件系统的权限设置方法及装置。
背景技术
文件系统是一个结构化的数据存储和组织形式。一个文件系统被挂载后才能使用,文件系统的组织结构表现为树状结构的目录树,目录树包括根目录、子目录以及子目录下的文件,子目录中不但可以包含文件,而且还可以包含下一级子目录,以此类推构成了多级目录结构的目录树。树状结构的根就是一个挂载点,在目录树中,根目录位于目录树的根节点,文件位于目录树的叶子节点,子目录位于目录树的中间节点。每个文件和目录分别为一个待访问的对象,在访问终端设备或应用程序需要访问的节点之前,查询待访问节点的访问控制列表(Access Control Lists,ACL),获取访问权限后,访问待访问节点的数据。为控制不同访问设备对不同节点的访问权限,为每一个节点分别配置一个访问控制列表,以分别配置每一个节点的访问权限。具体的,每一个节点的ACL包括若干个访问控制项(Access Control Entry,ACE),所述访问控制项用于记录所述节点的访问权限类型,并用于记录对所述节点进行访问的访问设备,以及所述访问设备对所述节点的访问权限等内容。
现有的目录树的节点的ACL设置方式为,对目录树的任一节点设置ACL后,再对目录树的与所述任一节点具有相同访问权限的所有节点设置ACL,如此对目录树的每个节点进行ACL的重复设置,节点的访问权限的设置效率较低。
发明内容
本发明公开了一种文件系统的权限设置方法及装置,所述文件系统的权限设置方法减少了节点的ACL的设置开销和存储开销。
第一方面提供一种文件系统的权限设置方法,所述方法应用于存储系统,包括:所述存储系统接收权限设置请求,所述权限设置请求用于请求对文件系统的目录树上的节点进行访问权限设置,所述权限设置请求包括待设置权限的节点的标识和权限记录。所述存储系统接收权限设置请求后,所述存储系统获取当前记录的全局版本参数,对所述当前记录的全局版本参数进行更新,得到最新的全局版本参数。所述存储系统保存所述待设置权限的节点的标识和权限记录,并将所述最新的全局版本参数作为所述待设置权限的节点的权限版本号。其中,全局版本参数递增或者递减设置,每个全局版本参数表示所述目录树的任意节点的一次权限设置操作。其中,所述待设置权限的节点的子节点的权限记录继承自所述待设置权限的节点的当前权限设置操作之后的权限记录。
本发明提供的文件系统的权限设置方法,实现快速设置目录树的节点的访问权限的权限记录,通过更新的全局版本参数表示所述目录树的任意节点的一次权限设置操作,该方法中,所述待设置权限的节点的子节点的权限记录继承自所述待设置权限的节点的当前权限设置操作之后的权限记录,所以仅设置目录树的父节点的权限记录,并使父节点对应的目录下的所有文件及所有子目录都继承所述父节点的权限记录,不用遍历父节点下的所有子目录或者文件来分别设置父节点下的每一个子目录或者文件的权限记录,提高了目录树的访问权限的设置效率。对父节点设置权限记录,不用对父节点对应的目录下的子目录以及文件重复设置权限记录,减少了存储空间的开销。
基于第一方面,在第一种实现方式中,所述获取当前记录的全局版本参数,包括:查询全局访问控制列表,获取当前记录的全局版本参数,所述全局访问控制列表保存在所述目录树的根节点的元数据中,所述全局访问控制列表保存有所述全局版本参数。
基于第一方面的第一种实现方式,在第二种实现方式中,所述接收权限设置请求之前,还包括:所述存储系统创建全局访问控制列表,并为所述新创建的全局访问控制列表设置初始全局版本参数。
基于第一方面的第一种或第二种实现方式,在第三种实现方式中,所述权限设置请求还包括所述待设置权限的节点的路径信息,所述待设置权限的节点的路径信息指示从所述根节点到所述待设置权限的节点的访问分支上的所有节点,所述方法还包括:所述存储系统保存所述待设置权限的节点的路径信息至所述全局访问控制列表,其中,所述待设置权限的节点的标识、路径信息和权限记录形成一组对应关系。由于所述待设置权限的节点的标识、路径信息和权限记录形成一组对应关系,且被保存在所述全局访问控制列表中,则只需索引目录树的根节点的元数据就可以获取到目录树的待设置权限的节点的标识、路径信息和权限记录,为获取目录树的节点的权限记录和路径信息提供了简便的访问通道。
基于第一方面或第一方面的第一种至第三种实现方式中的任一种实现方式,在第四种实现方式中,所述方法还包括:所述存储系统接收访问数据的请求,所述访问数据的请求包括待访问节点的标识。所述存储系统根据所述待访问节点的标识,获取所述待访问节点的访问权限。其中,在所述待访问节点的权限版本号不是所述待访问节点的路径信息所指示的全部节点所具备的权限版本号中最新的时,所述待访问节点的访问权限继承自所述待访问节点的具备最新权限版本号的父节点所对应的权限记录。所述存储系统依据所述待访问节点的访问权限进行鉴权,当鉴权通过后,访问所述待访问节点的数据。
基于第一方面的第四种实现方式,在第五种实现方式中,在所述待访问节点的权限版本号是所述待访问节点的路径信息所指示的全部节点所具备的权限版本号中最新的时,所述待访问节点的访问权限为记录的所述待访问节点的权限记录。
基于第一方面的第五种实现方式,在第六种实现方式中,所述根据所述待访问节点的标识,获取所述待访问节点的访问权限,包括:所述存储系统查询所述全局访问控制列表,根据所述待访问节点的标识,确认所述待访问节点的路径信息,其中,所述待访问节点的路径信息用于指示所述待访问节点和所述待访问节点的所有父节点。所述存储系统查询所述待访问节点的路径信息指示的每一个节点的权限版本号,确认权限版本号最新的节点。所述存储系统获取所述权限版本号最新的节点的权限记录,所述权限版本号最新的节点的权限记录为所述待访问节点的访问权限。
基于第一方面的第六种实现方式,在第七种实现方式中,所述查询所述待访问节点的路径信息指示的每一个节点的权限版本号,确认权限版本号最新的节点,包括:按照预设的遍历规则,比较所述待访问节点的路径信息指示的每一个节点的权限版本号,确认权限版本号最新的节点。通过预设的遍历规则比较所述待访问节点的路径信息指示的每一个节点的权限版本号,确认权限版本号最新的节点,可以依据目录树中的节点的访问权限分布规律预先设定遍历规则,以通过合适的预设的遍历规则比较所述待访问节点的路径中的每一个节点的权限版本号,确认权限版本号最新的节点,提高遍历比较的效率。
基于第一方面的第七种实现方式,在第八种实现方式中,所述目录树中的每个节点的路径信息指示的所有节点分别属于不同的目录级别,所述目录树中的每个节点的路径信息指示的所有节点中的父节点的目录级别高于所属于所述父节点的子节点的目录级别,所述待访问节点的目录级别最低,根节点的目录级别最高,所述按照预设的遍历规则,比较所述待访问节点的路径信息指示的所有节点中的每一个节点的权限版本号,确认权限版本号最新的节点,包括:所述存储系统从所述根节点开始,每次选取并比较所述待访问节点的路径信息指示的所有节点中的两个节点的权限版本号,确认权限版本号最新的节点。所述存储系统依据所述目录级别从高至低的顺序,直至遍历比较至所述待访问节点时,确认的权限版本号最新的节点为所述权限版本号最新的节点。
基于第一方面的第七种实现方式,在第九种实现方式中,所述目录树中的每个节点的路径信息指示的所有节点分别属于不同的目录级别,所述目录树中的每个节点的路径信息指示的所有节点中的父节点的目录级别高于所属于所述父节点的子节点的目录级别,所述待访问节点的目录级别最低,所述根节点的目录级别最高,所述按照预设的遍历规则,比较所述待访问节点的路径信息指示的所有节点中的每一个节点的权限版本号,确认权限版本号最新的节点,包括:所述存储系统从所述待访问节点开始,每次选取并比较所述待访问节点的路径信息指示的所有节点中的两个节点的权限版本号,确认权限版本号最新的节点。所述存储系统依据所述目录级别从低至高的顺序,直至遍历比较至所述根节点时,确认的权限版本号最新的节点为所述权限版本号最新的节点。
基于第一方面的第一种至第九种实现方式中的任一实现方式,在第十种实现方式中,所述方法还包括:所述存储系统接收创建节点的请求,所述创建节点的请求包括所述目录树的新增的节点的标识和路径信息,所述新增的节点的路径信息指示从所述根节点到所述新增的节点的访问分支上的所有节点。所述存储系统保存所述目录树的所述新增的节点的标识和路径信息的对应关系至所述全局访问控制列表中。所述存储系统保存所述新增的节点的权限版本号至所述全局访问控制列表中,所述新增的节点的权限版本号的初始值小于或等于创建的所述全局版本参数的初始值,为所述新增的节点设置初始权限版本号,为所述新增的节点设置的初始权限版本号小于或等于所述初始全局版本参数。因为新增的节点的权限版本号为小于或等于全局版本参数的初始值,则新增的节点的路径信息指示的所有节点中的已设置访问权限的节点的权限版本号比所述新增的节点的权限版本号新。因此,新增的节点继承了所述新增的节点的路径信息指示的所有节点中的权限版本号最新的节点的访问权限,所以对新增的节点进行访问权限的设置,不需要存储所述新增的节点的访问权限的访问记录,提高了新增的节点的访问权限的设置效率,节省了新增的节点的访问权限的存储开销。
第二方面提供一种文件系统的权限设置装置,包括用于执行第一方面或第一方面的任一种可能实现方式中的文件系统的权限设置方法的各个模块,所述模块可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
第三方面提供一种文件系统的权限设置装置,包括处理器和接口,所述接口用于接收请求消息;所述处理器用于执行第一方面或第一方面的任意可能的实现方式中的方法。
本发明提供一种文件系统的权限设置方法及装置,所述方法由存储系统执行,具体包括所述方法应用于存储系统,包括:所述存储系统接收权限设置请求,所述权限设置请求用于请求对文件系统的目录树上的节点进行访问权限设置,所述权限设置请求包括待设置权限的节点的标识和权限记录。所述存储系统接收权限设置请求后,所述存储系统获取当前记录的全局版本参数,对所述当前记录的全局版本参数进行更新,得到最新的全局版本参数。所述存储系统保存所述待设置权限的节点的标识和权限记录,并将所述最新的全局版本参数作为所述待设置权限的节点的权限版本号。其中,全局版本参数递增或者递减设置,每个全局版本参数表示所述目录树的任意节点的一次权限设置操作。其中,所述待设置权限的节点的子节点的权限记录继承自所述待设置权限的节点的当前权限设置操作之后的权限记录。本发明提供的文件系统的权限设置方法,实现快速设置目录树的节点的访问权限的权限记录,通过更新的全局版本参数表示所述目录树的任意节点的一次权限设置操作,该方法中,所述待设置权限的节点的子节点的权限记录继承自所述待设置权限的节点的当前权限设置操作之后的权限记录,所以仅设置目录树的父节点的权限记录,并使父节点对应的目录下的所有文件及所有子目录都继承所述父节点的权限记录,不用遍历父节点下的所有子目录或者文件来分别设置父节点下的每一个子目录或者文件的权限记录,提高了目录树的访问权限的设置效率。对父节点设置权限记录,不用对父节点对应的目录下的子目录以及文件重复设置权限记录,减少了存储空间的开销。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
图1为本发明实施例提供的一种存储系统的架构示意图;
图2为本发明实施例提供的一种NAS存储系统100的结构示意图;
图3为本发明实施例提供的一种目录树的组织形式示意图;
图4为本发明实施例提供的一种访问数据的方法流程图;
图5为本发明实施例提供的一种对新增的节点的访问权限进行设置的方法流程图;
图6为本发明实施例提供的一种文件系统的权限设置装置结构图。
具体实施方式
下面将结合附图,对本发明实施例中的技术方案进行清楚、完整地描述。
请参见图1,图1为本发明实施例提供的一种存储系统的架构示意图。所述存储系统可以为网络连接式(network-attached storage,NAS)存储系统或者存储区域网络式(storage Area Network,SAN)存储系统。本发明以NAS存储系统为例进行说明。如图1所示,用户通过客户端和NAS存储系统100进行通信。客户端可以为终端设备或者各种类型的服务器。NAS存储系统通过网络和文件共享协议,将数据提供给客户端访问,使用的协议包括用于数据传输的传输控制(Transmission Control Protocol,TCP)协议,因特网互联(Internet Protocol,IP)协议以及用于网络文件服务的网络通用文件(Common InternetFile,CIFS)协议和网络文件系统(Network File System,NFS)协议。
本发明实施例的终端设备包括平板电脑、笔记本电脑、移动互联网设备、掌上电脑、台式电脑、手机或者其他产品形态的终端设备。
本发明实施例的NAS存储系统100可以是文件服务器,也可以是计算机或者台式电脑等存储设备。
基于文件系统实现的目录树,目录树包括根目录、子目录以及子目录下的文件,根目录或者子目录中不但可以包含文件,而且还可以包含下一级子目录,以此类推构成了多级目录结构的目录树。
按照节点的功能划分,目录树中的节点包括挂载节点、目录节点和文件节点。按照节点的结构划分,目录树包括根节点、中间节点和叶子节点。挂载节点为目录树的根节点,目录节点为目录树的中间节点,文件节点为目录树的叶子节点。除了根节点之外,每一个节点作为子节点时,每一个子节点都具有其自身的父节点。除了叶子节点之外,每一个节点作为父节点时,每一个父节点都具有其自身的子节点。在目录树中,父节点对应的目录下的各级子目录和文件分别所属的节点都是所述父节点的子节点。
在目录树中的每一个节点的路径信息用于指示从所述目录树的根节点到所述节点的访问分支上的所有节点。从所述根节点到所述节点的访问分支为所述根节点至所述节点的路径,依据根节点至所述节点的路径可以标识所述节点在目录树中的位置,以及该路径中的所有节点在目录树中的位置。路径中的每一个节点对应的目录下的所有子目录及文件分别属于不同的目录级别。所述目录树中的每个节点的路径中,父节点对应的目录的目录级别高于所属于该父节点的所有子节点分别对应的目录的目录级别,所述待访问节点的路径中的所述待访问节点对应的目录的目录级别最低,根节点对应的目录的目录级别最高。
请参见图2,图2为本发明实施例提供的一种NAS存储系统100的结构示意图。NAS存储系统100用于存储,包括控制器210和存储阵列220。
控制器210,用于接收客户端对数据的访问请求,根据接收到的访问请求进行鉴权,当鉴权通过后,确定待访问数据在存储阵列220中的位置信息,向存储阵列220中的数据发起访问。
控制器210还用于对目录树中的节点的访问权限进行设置。进行访问权限设置时,保存权限记录,权限记录描述了客户端对节点的访问权限,所述权限记录包括访问控制项(Access Control Entry,ACE),所述访问控制项记录了节点的访问权限类型、节点的可访问对象,以及节点的可访问对象对所述节点的访问权限等内容。
存储阵列220,用于存储数据。控制器210对待访问请求进行鉴权,当鉴权通过后,控制器210访问所述待访问节点的数据。
存储阵列220,还用于存储数据的元数据。所述元数据是用于对存储的数据进行描述的数据,包括标准属性数据、扩展属性数据和布局属性数据。标准属性数据用于描述数据的大小和修改时间等标准属性,布局属性数据用于描述数据的存储位置,扩展属性数据包括描述节点的访问权限的数据。
现有方案中,设置ACL权限采用遍历目录树所包含的所有节点来进行权限设置,这种权限设置机制耗时长,影响业务处理效率,并且,目录树所包含的根目录、子目录和文件记录相同ACL,浪费存储空间。本发明的实施例针对现有技术中的不足,对于目录树所包含文件和子目录具有相同ACL权限的情况,提出了如下的解决方案:
本发明提出了一种快速设置目录树的ACL权限的方法。该方法仅设置目录树的父节点的ACL权限,并使父节点对应的目录下的所有文件及所有子目录都继承所述父节点的ACL权限。由于所述父节点对应的目录下的所有文件及所有子目录都继承所述父节点的ACL权限,所以仅需设置父节点的ACL权限即可,不用遍历父节点下的所有子目录或者文件来分别设置父节点下的每一个子目录或者文件的ACL权限,提高了目录树ACL权限的设置效率。对父节点设置ACL权限,不用对父节点对应的目录下的子目录以及文件重复设置ACL权限,减少了存储空间的开销。
本发明提供的快速设置目录树的ACL权限的方法,由于父节点对应的目录下的所有文件及所有子目录都继承所述父节点的ACL权限,所以对父节点对应的目录下的任一文件或者子目录进行访问时,仅需要查询待访问的文件或者子目录至根节点的路径中的所有节点,查找具有最新的ACL权限的父节点,由于所述待访问的文件或者子目录的ACL权限继承了具有最新的ACL权限的父节点的ACL权限,所以所述具有最新的ACL权限的父节点的最新的ACL权限可以作为待访问的文件或者子目录的ACL。
本发明提供的快速设置目录树的ACL权限的方法,设置全局访问控制列表(AccessControl Lists,ACL),该全局ACL可以保存在目录树的根节点的元数据中,该全局ACL用于保存目录树上的每个节点的权限信息,也就是说,目录树上的任意节点的权限记录不再单独保存在该任意节点自身的元数据中,而由该全局ACL统一保存。并且,该全局ACL保存有全局版本参数,全局ACL通过更新后的所述全局版本参数的值指示待设置权限的节点的权限版本号。本发明提供的快速设置目录树的ACL权限的方法,在NAS存储系统100接收权限设置请求后,通过控制器210查询全局ACL,获取全局版本参数,对所述全局版本参数进行更新,得到当前全局版本参数,保存所述待设置权限的节点的标识和权限记录,并将所述当前全局版本参数作为所述待设置权限的节点的权限版本号。所述权限设置请求用于请求对文件系统的目录树上的节点进行访问权限设置,所述权限设置请求包括待设置权限的节点的标识和权限记录。
如图2所示,控制器210包含接口211和接口212,接口211用于和客户端通信。接口212用于和存储阵列220通信。控制器210还包括控制模块230,控制模块230用于对目录树中的节点的访问权限进行设置,用于对待访问节点的权限记录进行鉴权。控制模块230对待访问节点的权限记录进行鉴权,当鉴权通过后,控制模块230访问所述待访问节点的数据。
如图2所示,控制模块230包括处理器213和存储器214。处理器213用于对目录树中的节点的访问权限进行设置,用于对待访问节点的权限记录进行鉴权。处理器213对待访问节点的权限记录进行鉴权,当鉴权通过后,处理器213访问所述待访问节点的数据。
存储器214包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory,NVM),例如至少一个磁盘存储器。可以理解的是,存储器214可以为随机存储器(Random-Access Memory,RAM)、磁碟、硬盘、固态硬盘(solid state disk,SSD)或者非易失性存储器等各种可以存储程序代码的机器可读介质。
存储器214,用于临时存储从客户端发送的信息。
处理器213可以是任何计算器件,可以是通用中央处理器(CPU),微处理器,可编程控制器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制以上方案程序执行的集成电路。
下面通过图2所示的NAS存储系统100的结构,详细描述NAS存储系统100中的各个部分在本发明中的作用。
在本发明中,接口211,用于接收客户端发送的权限设置请求。所述权限设置请求用于请求对文件系统的目录树上的待设置访问权限的节点进行访问权限设置。
所述权限设置请求包括目录树中待设置访问权限的节点的标识和权限记录。所述权限设置请求用于指示所述处理器213对所述当前记录的全局版本参数进行更新,得到最新的全局版本参数。
本发明中,处理器213,用于根据所述权限设置请求对待设置权限的节点进行访问权限的设置。所述处理器213,用于获取当前记录的全局版本参数,对所述当前记录的全局版本参数进行更新,得到最新的全局版本参数,其中,全局版本参数递增或者递减设置,每个全局版本参数表示所述目录树的任意节点的一次权限设置操作。所述处理器213,还用于保存所述待设置权限的节点的标识和权限记录,并将所述最新的全局版本参数作为所述待设置权限的节点的权限版本号,其中,所述待设置权限的节点的所有子节点的权限记录继承自所述待设置权限的节点的当前权限设置操作之后的权限记录。
所述待设置权限的节点作为父节点时,对待设置权限的节点进行访问权限设置后,所述待设置权限的节点对应的目录下的所有文件及所有子目录都继承所述待设置权限的节点的访问权限。由于所述父节点对应的目录下的所有文件及所有子目录都继承所述父节点的ACL权限,所以仅需设置所述待设置权限的节点的ACL权限即可,不用遍历父节点下的所有子目录或者文件来分别设置父节点下的每一个子目录或者文件的ACL权限,避免对与所述待设置权限的节点具有相同访问权限的其他所有子节点,进行访问权限的重复设置,提高了目录树ACL权限的设置效率。在本实施方式中,如果用数值表示全局版本参数的值,则数值越大表示访问权限越新。
另外,本发明中,不需要对与父节点具有相同访问权限的在父节点下的所有子节点进行访问权限的重复设置,进而节省了访问权限数据的存储开销。
本发明中,所述权限设置请求还可以包括所述待设置权限的节点的路径信息,所述待设置权限的节点的路径信息指示从所述根节点到所述待设置权限的节点的访问分支上的所有节点。本发明中通过设置全局ACL保存已设置访问权限的节点的标识、路径信息和权限记录的对应关系。所述全局ACL还包括全局版本参数。全局ACL保存在所述目录树的根节点的元数据中。对所述节点进行访问权限设置后,将所述最新的全局版本参数作为所述待设置权限的节点的权限版本号,所以全局ACL也可以保存已设置访问权限的节点的权限版本号。
本发明中,接口211,还用于接收客户端发送的创建全局ACL的请求。所述创建全局ACL的请求用于指示处理器213创建全局ACL,并为所述新创建的全局ACL设置初始全局版本参数。
处理器213,用于根据所述创建全局ACL的请求,创建全局ACL。创建的全局ACL保存有全局版本参数,创建的全局ACL中的全局版本参数的值为初始值,全局版本参数的初始值为0,也可以是其他数值或者字母或者其他符号标识。
请参见图3,图3为本发明实施例提供的一种目录树的组织形式示意图。如图3所示,目录树包括根节点310,中间节点311,中间节点312,叶子节点f1,叶子节点f2和叶子节点f3。
创建全局ACL后,以及在对待设置权限的节点的访问权限进行设置前,创建的全局ACL可用表1表示,表1所示的全局ACL包括全局版本参数,为所述新创建的全局ACL设置的初始全局版本参数的值为表1中所示的0,表1所示的全局ACL还用于存储文件系统的目录树的每一个节点的标识和每一个节点的路径信息。
如果通过节点的路径中的每个节点的标识确定所述节点的路径,则节点的路径信息包括子文件系统中的每个节点的标识,例如通过数字标识每一个节点,表1中所示的根节点的标识为数字310,则根节点310的路径信息包括根节点的标识中的数字310。具体的,创建的全局ACL中的所述全局版本参数,以及文件系统中的每个节点的标识,和每个节点的路径信息的对应关系如表1所示。如表1所示,全局ACL还可以用于保存待设置ACL权限的节点的权限记录和权限版本号,创建全局ACL后,如果还没有对目录树的节点进行ACL权限的设置,保存在全局ACL中的权限记录和权限版本号为空。
表1
如果每个节点的路径是唯一的,可以通过节点的路径信息来标识节点,则所述全局版本参数,以及文件系统中的每个节点的标识,和每个节点的路径信息的对应关系可以如表2所示。
表2
创建全局ACL之后,用户通过客户端对目录树中的节点的访问权限进行设置。
处理器213,还用于保存所述待设置权限的节点的标识和权限记录至所述全局ACL中,所述待设置权限的节点的权限版本号为更新后的所述全局版本参数的值。
处理器213,还用于在访问待访问节点的数据之前,获取所述待访问节点的访问权限。所述待访问节点的访问权限为,所述待访问节点至所述根节点的路径信息指示的所有节点中,具备最新权限版本号的节点的访问权限。具备最新权限版本号的节点通过权限记录表示访问权限,权限版本号最新的节点的权限记录。所述待访问节点的访问权限表示为所述待访问节点的路径信息指示的所有节点中具备最新权限版本号的节点对应的权限记录。
在本发明中,存储系统通过全局ACL组织目录树的所有节点的访问权限数据。在存储阵列220中存储的所述全局ACL,用于描述待设置权限的节点的访问权限,具体地,所述全局ACL用于保存所述更新后的全局版本参数的值,以及用于保存所述待设置权限的节点的标识、路径信息和权限记录的对应关系,所述待设置权限的节点的权限版本号为更新后的所述全局版本参数的值。由于所述待设置权限的节点的标识、路径信息和权限记录形成一组对应关系,且被保存在所述全局ACL中,则只需索引目录树的根节点的元数据就可以获取到目录树的待设置权限的节点的标识、路径信息和权限记录,为获取目录树的节点的权限记录和路径信息提供了简便的访问通道。
请参见图4,图4为本发明实施例提供的一种访问数据的方法流程图。如图4所示,本实施例提供的访问权限的方法,由图2所示的NAS存储系统100执行,具体可由NAS存储系统100中的控制模块230或者图2所示的控制模块230中的处理器213执行,详细描述了在创建了目录树之后,如何对已创建好的目录树设置访问权限,然后对已创建好的目录树的待访问节点的数据进行访问的方法,具体包括如下步骤。
S401、NAS存储系统100接收客户端发送的创建全局ACL的请求。
在本发明中,所述创建全局ACL的请求用于指示NAS存储系统100创建全局ACL。
用户可以通过客户端发送创建全局ACL的请求给所述NAS存储系统100。所述创建全局ACL的请求包括目录树的根节点的标识。
基于上述所述创建全局ACL的请求的实现方式,在其他实现方式中,所述创建全局ACL的请求可以包括目录树的每一个节点的路径信息及每一个节点的标识。每一个节点的路径信息指示从所述根节点到所述节点的访问分支上的所有节点,即用于表示根节点至所述节点的路径,依据所述路径,可以查找到节点在目录树中的位置,以及路径中的中间节点在目录树中的位置,路径中除根节点以外的每一个节点分别归属于一个父节点,路径中除叶子节点以外的每一个节点都有属于其自身的子节点,除叶子节点以外的每一个节点对应的目录下的各级子目录和文件分别属于不同的目录级别。
如果通过路径中的每一个节点的标识表示节点的路径信息,则所述创建全局ACL的请求可以只包括目录树的每一个节点的路径信息。
S402、NAS存储系统100创建全局ACL。具体的,NAS存储系统100创建全局版本参数,并保存全局版本参数至所述全局ACL中,所述全局版本参数的值为初始值。
作为一种可选的实施方式,基于上述步骤S401中描述的,所述创建全局ACL的请求可以包括目录树的每一个节点的路径信息及每一个节点的标识的实现方式,NAS存储系统100保存目录树的每一个节点的路径信息和节点的标识的对应关系至所述全局ACL中。如表3所示的全局ACL包括目录树的每一个节点的路径信息和节点的标识的对应关系。表3所示的全局ACL还包括全局版本参数。基于图3所示的目录树,执行本步骤所创建的全局ACL的内容,如表3所示。
表3
如果通过路径中的每一个节点的标识表示节点的路径信息,全局ACL包括全局版本参数和每一个节点的路径信息。
S403、NAS存储系统100接收权限设置请求。所述权限设置请求用于请求对文件系统的目录树上的节点进行访问权限设置,所述权限设置请求包括待设置权限的节点的标识和权限记录。
具体的,用户通过客户端发送权限设置请求。
权限设置请求包括待设置权限的节点的标识和权限记录。基于图3所示的目录树,以中间节点311为待设置权限的节点为例。如图3所示,权限记录包括若干项ACE,每项ACE包含控制类型(type)、权限(mask)和用户标识(user id)等内容。其中,控制类型包含允许(allowed)或拒绝(denied)等等,用户标识(user id)表示某一用户或某类用户,权限(mask)表示相应用户的访问权限,一般采用掩码方式表示。
如果基于上述步骤S401中实现的,NAS存储系统100接收的创建全局ACL的请求中包括目录树的每一个节点的路径信息及每一个节点的标识,则新创建的全局ACL中包括目录树的每一个节点的路径信息及每一个节点的标识,则NAS存储系统100接收权限设置请求后,保存所述待设置权限的节点的权限记录至所述全局ACL,其中,所述待设置权限的节点的标识、路径信息和权限记录形成一组对应关系。
如果基于上述步骤S401中实现的,NAS存储系统100接收的创建全局ACL的请求中不包括目录树的每一个节点的路径信息及每一个节点的标识,则新创建的全局ACL中不包括目录树的每一个节点的路径信息及每一个节点的标识,则本发明的本步骤S403中的权限设置请求的一种可选的实现方式为,所述权限设置请求不仅包括待设置权限的节点的标识和权限记录,还包括所述待设置权限的节点的路径信息,所述待设置权限的节点的路径信息指示从所述根节点到所述待设置权限的节点的访问分支上的所有节点。因此,NAS存储系统100接收权限设置请求后,保存所述待设置权限的节点的路径信息至所述全局ACL,其中,所述待设置权限的节点的标识、路径信息和权限记录形成一组对应关系。
如果基于上述步骤S401中实现的,NAS存储系统100接收的创建全局ACL的请求中不包括目录树的每一个节点的路径信息及每一个节点的标识,则新创建的全局ACL中不包括目录树的每一个节点的路径信息及每一个节点的标识,则保存所述待设置权限的节点的标识、路径信息和权限记录形成的对应关系的一种可选的实现方式,将所述待设置权限的节点的标识、路径信息和权限记录形成的对应关系,保存在所述待设置权限的节点的元数据中。
S404、NAS存储系统100获取全局版本参数。
具体的,NAS存储系统100可以通过查询全局ACL,获取当前记录的全局版本参数。
所述全局访问控制列表保存在所述目录树的根节点的元数据中,所述全局访问控制列表保存有全局版本参数。基于表3所示的目录树的全局ACL中的内容,根据步骤S402中的NAS存储系统100创建的全局ACL的内容,确定已创建的全局版本参数的值为0。
S405、NAS存储系统100对当前记录的所述全局版本参数的值进行更新,得到最新的全局版本参数。所述最新的全局版本参数作为所述待设置权限的节点的权限版本号。
本发明中所述待设置权限的节点的权限版本号可以保存在所述全局ACL中,在其他实现方式中,所述待设置权限的节点的权限版本号也可以保存于所述待设置权限的节点的元数据中。
全局版本参数递增或者递减设置,每个全局版本参数表示所述目录树的任意节点的一次权限设置操作。NAS存储系统100对所述全局版本参数的值进行更新,具体的可以按照预设粒度对全局版本参数的值进行加运算或者减运算,预设粒度可以是1,可以是其他大于零的数值。具体的,在本实施方式中,NAS存储系统100将所述全局版本参数的值进行加2运算后,获得的全局版本参数的值为2。
S406、NAS存储系统100保存待设置权限的节点的标识和所述权限记录。其中,待设置权限的节点的权限版本号为更新后的所述最新的全局版本参数的值。所述待设置权限的节点的子节点的权限记录继承自所述待设置权限的节点的当前权限设置操作之后的权限记录。
所述待设置权限的节点的标识和权限记录保存在所述全局ACL中,在其他实现方式中,所述待设置权限的节点的标识和权限记录也可以保存在所述待设置权限的节点的元数据中。
待设置权限的节点的权限版本号保存在所述全局ACL中,在其他实现方式中,所述待设置权限的节点的权限版本号也可以保存在所述待设置权限的节点的元数据中。
在本实施方式中,设置后的全局ACL包括更新后的全局版本参数的值、待设置权限的节点的标识、待设置权限的节点的权限版本号和所述权限记录。例如,对所述全局ACL进行设置后,所述全局ACL的内容如表4所示。设置后的所述全局ACL包括更新后的全局版本参数的值(2)、待设置权限的节点的权限版本号(2)和所述权限记录(ACE1、ACE2……ACEn)。
表4
本发明提出的快速设置目录树的ACL权限的方法。该方法仅设置目录树的父节点的ACL权限,例如表4中的中间节点311的ACL权限,则父节点,例如表4中所示的中间节点311,对应的目录下的所有文件及所有子目录,例如,表4中所示的中间节点312对应的子目录以及叶子节点f1、叶子节点f2、叶子节点f3对应的文件,都继承所述父节点(表4中所示的中间节点311)的ACL权限。由于所述父节点对应的目录下的所有文件及所有子目录都继承所述父节点的ACL权限,所以仅需设置父节点的ACL权限即可,不用遍历父节点下的所有子目录或者文件来分别设置父节点下的每一个子目录或者文件的ACL权限,提高了目录树ACL权限的设置效率。对父节点设置ACL权限,不用对父节点对应的目录下的子目录以及文件重复设置ACL权限,减少了存储空间的开销。
S407、NAS存储系统100接收访问数据的请求。
用户通过客户端发送所述访问数据的请求。所述访问数据的请求用于指示访问目录树中的待访问节点的数据,所述访问数据的请求包括目录树中的待访问节点的标识,请求访问的数据属于待访问节点,待访问节点为已建好的目录树的任意节点。目录树中全部或者部分节点设置有权限记录。本发明中,未设置权限记录的节点的权限版本号默认为最小版本号。
S408、NAS存储系统100依据所述待访问节点的标识,确认所述待访问节点的路径信息。
具体的,NAS存储系统100查询所述全局ACL或者所述待访问节点的元数据,依据所述待访问节点的标识,确认所述待访问节点的路径信息。所述待访问节点的路径信息用于指示所述待访问节点和所述待访问节点的所有父节点。
当用户访问数据之前,需要查询所述全局ACL,以获取数据所属的待访问节点的访问权限。
S409、NAS存储系统100查询所述路径信息指示的所有节点中的每一个节点的权限版本号,确认权限版本号最新的节点,获取所述权限版本号最新的节点的权限记录,作为所述待访问节点的访问权限。
NAS存储系统100获取的所述权限版本号最新的节点的权限记录为所述待访问节点的访问权限。在所述待访问节点的权限版本号是所述待访问节点及所述待访问节点的所有父节点所具备的权限版本号中最新的时,所述待访问节点的访问权限为记录的所述待访问节点的权限记录,在所述待访问节点的权限版本号不是所述待访问节点及所述待访问节点的所有父节点所具备的权限版本号中最新的时,所述待访问节点的访问权限继承自所述待访问节点的具备最新权限版本号的父节点所对应的权限记录。
具体的,在本发明中,如果以数字表示权限版本号,则NAS存储系统100查询所述路径中的每一个节点的权限版本号,确认的权限版本号最大的节点就是权限版本号最新的节点。
用户访问数据之前,需要获取数据所属的节点的访问权限,进而获取数据的访问权限。
本发明中,目录树中的全部或者部分节点的访问权限被设置,通过权限记录描述节点的访问权限。
本步骤中,所述查询所述待访问节点的路径信息指示的每一个节点的权限版本号,确认权限版本号最新的节点,具体的包括,NAS存储系统100按照预设的遍历规则,比较所述待访问节点的路径信息指示的每一个节点的权限版本号,确认权限版本号最新的节点。
本发明中,所述目录树中的每个节点的路径信息指示的所有节点分别属于不同的目录级别,所述目录树中的每个节点的路径信息指示的所有节点中的父节点的目录级别高于所属于所述父节点的子节点的目录级别,所述待访问节点的路径信息指示的所有节点中的所述待访问节点的目录级别最低,根节点的目录级别最高。
NAS存储系统100按照预设的遍历规则,比较所述待访问节点的路径信息指示的所有节点中的每一个节点的权限版本号,确认权限版本号最新的节点的一种情况是,从所述根节点开始,每次选取并比较所述待访问节点的路径信息指示的所有节点中的两个节点的权限版本号,确认权限版本号最新的节点;依据所述目录级别从高至低的顺序,直至遍历比较至所述待访问节点的路径信息指示的所有节点中的所述待访问节点时,确认的权限版本号最新的节点为所述权限版本号最新的节点。
从所述根节点开始,每次选取并比较所述待访问节点的路径信息指示的所有节点中的两个节点的权限版本号,确认权限版本号最新的节点,具体为,从所述跟节点开始,按照所述目录级别从高至低的顺序,在所述待访问节点的路径信息指示的所有节点中选取一个当前节点,每次从所述待访问节点的路径信息指示的所有节点中选取一个比所述当前节点的目录级别低一级的待比较节点,将所述当前节点和所述待比较节点进行权限版本号的比较,确认权限版本号最新的节点。依据所述目录级别从高至低的顺序,直至遍历比较至所述待访问节点的路径信息指示的所有节点中的所述待访问节点时,确认的权限版本号最新的节点为所述权限版本号最新的节点,具体为,当所述当前节点的权限版本号为权限版本号最新的节点时,将所述当前节点继续作为当前节点,从所述待访问节点的路径信息指示的所有节点中选取一个比所述待比较节点的目录级别低一级的节点作为新的待比较节点,将所述当前节点和所述新的待比较节点进行权限版本号的比较。当所述待比较节点的权限版本号为权限版本号最新的节点时,则选择所述待比较节点作为新的当前节点,从所述待访问节点的路径信息指示的所有节点中选取一个比所述新的当前节点的目录级别低一级的节点作为新的待比较节点,进行权限版本号的比较,直至将所述目录树的所述待访问节点的权限版本号比较完成之后,确认出的当前节点为权限版本号最新的节点。
如果所述当前节点的权限版本号和所述待比较的节点的权限版本号相同时,将所述当前节点作为所述当前节点和所述待比较中的权限版本号最新的节点,则继续将所述当前节点作为当前节点,从所述待访问节点的路径信息指示的所有节点中选取一个比所述待比较节点的目录级别低一级的节点作为新的待比较节点,将所述当前节点和所述新的待比较节点进行权限版本号的比较,直至将所述目录树的所述待访问节点的权限版本号比较完成之后,确认出的当前节点为权限版本号最新的节点。
NAS存储系统100按照预设的遍历规则,比较所述待访问节点的路径信息指示的所有节点中的每一个节点的权限版本号,确认权限版本号最新的节点的另一种情况是,从所述待访问节点开始,每次选取并比较所述待访问节点的路径信息指示的所有节点中的两个节点的权限版本号,确认权限版本号最新的节点;依据所述目录级别从低至高的顺序,直至遍历比较至所述待访问节点的路径信息指示的所有节点中的根节点时,确认的权限版本号最新的节点为所述权限版本号最新的节点。
从所述待访问节点开始,每次选取并比较所述待访问节点的路径信息指示的所有节点中的两个节点的权限版本号,确认权限版本号最新的节点,具体为,从所述待访问节点开始,按照所述目录级别从低至高的顺序,在所述待访问节点的路径信息指示的所有节点中选取一个当前节点,每次从所述待访问节点的路径信息指示的所有节点中选取一个比所述当前节点的目录级别高一级的待比较节点,将所述当前节点和所述待比较节点进行权限版本号的比较,确认权限版本号最新的节点。依据所述目录级别从低至高的顺序,直至遍历比较至所述待访问节点的路径信息指示的所有节点中的根节点时,确认的权限版本号最新的节点为所述权限版本号最新的节点,具体为,当所述当前节点的权限版本号为权限版本号最新的节点时,将所述当前节点继续作为当前节点,从所述待访问节点的路径信息指示的所有节点中选取一个比所述待比较节点的目录级别高一级的节点作为新的待比较节点,将所述当前节点和所述新的待比较节点进行权限版本号的比较。当所述待比较节点的权限版本号为权限版本号最新的节点时,则选择所述待比较节点作为新的当前节点,从所述待访问节点的路径信息指示的所有节点中选取一个比所述新的当前节点的目录级别高一级的节点作为新的待比较节点,进行权限版本号的比较,直至将所述目录树的所述根节点的权限版本号比较完成之后,确认出的当前节点为权限版本号最新的节点。
如果所述当前节点的权限版本号和所述待比较的节点的权限版本号相同时,将所述当前节点作为所述当前节点和所述待比较中的权限版本号最新的节点,则继续将所述当前节点作为当前节点,从所述待访问节点的路径信息指示的所有节点中选取一个比所述待比较节点的目录级别高一级的节点作为新的待比较节点,将所述当前节点和所述新的待比较节点进行权限版本号的比较,直至将所述目录树的所述根节点的权限版本号比较完成之后,确认出的当前节点为权限版本号最新的节点。
S410、NAS存储系统100依据所述待访问节点的访问权限进行鉴权,当鉴权通过后,客户端访问所述待访问节点的数据。所述待访问节点的访问权限为所述待访问节点至所述根节点的路径信息指示的所有节点中,具备最新权限版本号的节点的访问权限。
在本实施方式中,由于父节点对应的目录下的所有文件及所有子目录都继承所述父节点的ACL权限,所以对父节点对应的目录下的任一文件或者子目录进行访问时,仅需要查询待访问的文件或者子目录至根节点的路径中的所有节点,查找具有最新的ACL权限的父节点。例如,对表4所示的中间节点312进行访问时,由于所述中间节点312对应的子目录的ACL权限继承了具有最新的ACL权限的父节点的ACL权限,即中间节点311作为中间节点312的父节点,因中间节点312具有最新的ACL权限,所以具有最新的ACL权限的父节点的最新的ACL权限可以作为待访问的文件或者子目录的ACL。
作为一种可选的实施方式,在上述图4所示的实施方式中,在步骤S409之后,即NAS存储系统100查询所述路径信息指示的所有节点中的每一个节点的权限版本号,确认权限版本号最新的节点和所述权限版本号最新的节点的权限记录之后,NAS存储系统100可以保存待访问节点的ACL版本号和权限记录至所述全局ACL中。待访问节点的访问权限版本号为步骤S409中确认的最新的权限版本号,待访问节点的权限记录为步骤S409中确认的权限版本号最新的节点的权限记录。
在本发明中,NAS存储系统100为包括不同根节点的多个目录树分别配置一全局ACL的标识。所述全局ACL的标识包括目录树的根节点的标识,通过不同根节点的标识区分包括不同根节点的多个目录树。因此,包括不同根节点的多个目录树对应的不同全局ACL,可以通过目录树的根节点的标识区分。
在配置全局ACL的标识的其他实现方式中,全局ACL的标识还可以是目录树的根节点的标识和全局ACL的版本信息的组合。全局ACL的版本信息用于标识包括根节点的目录树的全局ACL的多个版本。对目录树增加子节点或者减少子节点后,NAS存储系统100对改变之前的目录树的全局ACL进行备份,因此文件系统中具有包含同一根节点的多个目录树对应的多个版本,包含同一根节点的多个目录树对应的多个版本包括目录树增加节点前的全局ACL版本,或者增加节点至目录树后进行更新的全局ACL版本,或者目录树减少节点前的全局ACL版本,或者减少目录树的节点后进行更新的全局ACL版本或者对同一目录树在不同时间点备份的至少一个全局ACL版本。本发明中,备份多个全局ACL版本便于后续对全局ACL的恢复。
基于图4所示的实施例,在步骤S402之后,即在创建全局ACL之后,或者已创建目录树后,当用户需要对已创建ACL的目录树或未创建全局ACL的目录树进行更改,例如需要在目录树中增加新的目录节点或者文件节点时,本发明提供一种设置访问权限的方法,以及时对新增加的目录节点或者文件节点进行访问权限的设置。下面详细描述对已有的目录树增加了新的节点,如何对新增的节点的访问权限进行设置的方法,请参见图5,图5为本发明实施例提供的一种对新增的节点的访问权限进行设置的方法流程图,如图5所示,本实施例提供的对新增的节点的访问权限进行设置的方法,由图2所示的NAS存储系统100执行,具体可由NAS存储系统100中的控制模块230或者图2所示的控制模块230中的处理器213执行,具体包括如下步骤。
S510、NAS存储系统100接收创建节点的请求。
用户可以通过客户端发送创建节点的请求给所述NAS存储系统100。
创建节点的请求包括目录树的新增的节点的标识和路径信息,所述新增的节点的路径信息指示从所述根节点到所述新增的节点的访问分支上的所有节点。新增的节点可以是目录节点,也可以是文件节点。例如,基于图3所示的目录树,新增的节点的标识为313,路径为\310\311\313。依据新增的节点的路径,确定出所述新增的节点是在中间节点311下面新增加的一个子节点313。
如果新增的节点是根节点,则目录树的全局ACL的标识更新为包括新增的根节点的标识的标识。目录树新增根节点之前的根节点变更为新增的根节点的子节点。
在另一种实现方式中,如果通过路径中的每一个节点的标识表示节点的路径,则创建节点的请求可以只包括新增的节点的路径。因为,新增的节点的路径包括该路径中的每一个节点的标识。依据所述新增的节点的路径,可以确定出所述新增的节点的标识。
NAS存储系统100接收客户端发送的创建节点的请求后,NAS存储系统100可以对当前的全局ACL进行备份,便于用户根据不同的全局ACL版本,对目录树的访问权限进行恢复。
S520、NAS存储系统100保存所述新增的节点的标识和路径信息的对应关系。
具体的,NAS存储系统100保存所述新增的节点的标识和路径信息的对应关系至所述全局ACL中。
可选的,NAS存储系统100保存所述新增的节点的标识和路径信息的对应关系至所述新增的节点的元数据中。
在另一种实现方式中,如果通过每一个节点的标识表示节点的路径信息,则NAS存储系统100保存所述新增的节点的路径信息至所述全局ACL中或者所述新增的节点的元数据中。所以,在通过每一个节点的标识表示节点的路径信息的实施方式中,可以通过路径标识节点,节省了全局ACL的存储空间。
S530、NAS存储系统100保存所述新增的节点的权限版本号至所述全局ACL中。新增的节点的权限版本号的值为预设的权限版本号的初始值。
具体的,NAS存储系统100保存所述新增的节点的权限版本号至所述全局ACL中。
可选的,NAS存储系统100保存所述新增的节点的权限版本号至所述新增的节点的元数据中。
在本发明中,预设的权限版本号的初始值设置为0。新增的节点的预设的权限版本号的初始值小于或等于全局版本参数的初始值。因为新增的节点的权限版本号为小于或等于全局版本参数的初始值,则新增的节点的路径信息指示的所有节点中的已设置访问权限的节点的权限版本号比所述新增的节点的权限版本号新。因此,新增的节点继承了所述新增的节点的路径信息指示的所有节点中的权限版本号最新的节点的访问权限,所以对新增的节点进行访问权限的设置,不需要存储所述新增的节点的访问权限的访问记录,提高了新增的节点的访问权限的设置效率,节省了新增的节点的访问权限的存储开销。
增加新的节点后,通过步骤S520和S530对新增节点的目录树更新全局ACL的内容,更新后的全局ACL的内容如表5所示。
表5
基于图4所示的实施例,在步骤S406之后,如果对目录树新增节点,则通过上述图5所示的步骤对新增的节点进行访问权限的设置后,全局ACL的内容如表6所示。
表6
基于图5所示的实施例,创建节点的请求还包括新增的节点所包括的数据,在步骤S510之后,NAS存储系统100保存所述数据至存储阵列220。
请参见图6,图6为本发明实施例提供的一种文件系统的权限设置装置结构图,本发明实施例提供的文件系统的权限设置装置应用于存储系统中,例如可以应用于所述NAS存储系统100中。如图6所示,本实施例提供的文件系统的权限设置装置60包括:接收模块61、获取模块62和处理模块63。接收模块61和获取模块62连接,处理模块63分别与获取模块62和接收模块61连接。
本发明中,接收模块61,用于接收权限设置请求,所述权限设置请求用于请求对文件系统的目录树上的节点进行访问权限设置,所述权限设置请求包括待设置权限的节点的标识和权限记录。
在本实施方式中,接收模块61接收客户端发送的权限设置请求的功能,可以通过NAS存储系统100中的接口211实现,权限设置请求的具体实现细节可以参考图4所示的步骤S403的具体细节,在这里不再赘述。
本发明中,获取模块62,用于获取当前记录的全局版本参数。
在本实施方式中,获取模块62获取当前记录的全局版本参数的功能可以通过NAS存储系统100中的接口212实现,也可以通过NAS存储系统100中的处理器213或者控制模块230实现,获取模块62获取当前记录的全局版本参数的具体实现细节,可以参考图4所示的步骤S404的具体细节,在这里不再赘述。
本发明中,处理模块63,用于对所述当前记录的全局版本参数进行更新,得到最新的全局版本参数,保存所述待设置权限的节点的标识和权限记录。其中,将所述最新的全局版本参数作为所述待设置权限的节点的权限版本号。全局版本参数递增或者递减设置,每个全局版本参数表示所述目录树的任意节点的一次权限设置操作,所述待设置权限的节点的子节点的权限记录继承自所述待设置权限的节点的当前权限设置操作之后的权限记录。
在本实施方式中,处理模块63对所述当前记录的全局版本参数进行更新,得到最新的全局版本参数的功能可以通过NAS存储系统100中的处理器213或者控制模块230实现,处理模块63对所述当前记录的全局版本参数进行更新,得到最新的全局版本参数的具体实现细节,可以参考图4所示的步骤S405的具体细节,在这里不再赘述。
在本实施方式中,处理模块63保存所述待设置权限的节点的标识和权限记录的功能可以通过NAS存储系统100中的处理器213或者控制模块230实现,处理模块63保存所述待设置权限的节点的标识和权限记录,以及将所述最新的全局版本参数作为所述待设置权限的节点的权限版本号的具体实现细节,可以参考图4所示的步骤S406的具体细节,在这里不再赘述。
本发明提供的文件系统的权限设置装置,实现快速设置目录树的节点的访问权限的权限记录,通过更新的全局版本参数表示所述目录树的任意节点的一次权限设置操作,所述待设置权限的节点的子节点的权限记录继承自所述待设置权限的节点的当前权限设置操作之后的权限记录,所以仅设置目录树的父节点的权限记录,并使父节点对应的目录下的所有文件及所有子目录都继承所述父节点的权限记录,不用遍历父节点下的所有子目录或者文件来分别设置父节点下的每一个子目录或者文件的权限记录,提高了目录树的访问权限的设置效率。对父节点设置权限记录,不用对父节点对应的目录下的子目录以及文件重复设置权限记录,减少了存储空间的开销。
作为一种可选的实施方式,所述获取模块62,还用于查询全局访问控制列表,获取当前记录的全局版本参数,所述全局访问控制列表保存在所述目录树的根节点的元数据中,所述全局访问控制列表保存有所述全局版本参数。在本实施方式中,获取模块62查询全局访问控制列表,获取当前记录的全局版本参数的功能,可以通过NAS存储系统100中的接口212实现,也可以通过NAS存储系统100中的处理器213或者控制模块230实现,获取模块62查询全局访问控制列表,获取当前记录的全局版本参数的具体实现细节,可以参考图4所示的步骤S404的具体细节,在这里不再赘述。
作为一种可选的实施方式,所述处理模块63,还用于创建全局访问控制列表,并为所述新创建的全局访问控制列表设置初始全局版本参数。在本实施方式中,处理模块63创建全局访问控制列表,并为所述新创建的全局访问控制列表设置初始全局版本参数的功能,可以通过NAS存储系统100中的处理器213或者控制模块230实现,处理模块63创建全局访问控制列表,并为所述新创建的全局访问控制列表设置初始全局版本参数的具体实现细节,可以参考图4所示的步骤S401和S402的具体细节,在这里不再赘述。
作为一种可选的实施方式,所述权限设置请求还包括所述待设置权限的节点的路径信息,所述待设置权限的节点的路径信息指示从所述根节点到所述待设置权限的节点的访问分支上的所有节点。所述处理模块63,还用于保存所述待设置权限的节点的路径信息至所述全局访问控制列表。其中,所述待设置权限的节点的标识、路径信息和权限记录形成一组对应关系。
在本实施方式中,处理模块63保存所述待设置权限的节点的路径信息至所述全局访问控制列表的功能,可以通过NAS存储系统100中的处理器213或者控制模块230实现,处理模块63保存所述待设置权限的节点的路径信息至所述全局访问控制列表的具体实现细节,可以参考图4所示的步骤S403中的关于保存目录树的节点的路径信息的具体细节,在这里不再赘述。
由于所述待设置权限的节点的标识、路径信息和权限记录形成一组对应关系,且被保存在所述全局访问控制列表中,则只需索引目录树的根节点的元数据就可以获取到目录树的待设置权限的节点的标识、路径信息和权限记录,为获取目录树的节点的权限记录和路径信息提供了简便的访问通道。
作为一种可选的实施方式,所述接收模块61,还用于接收访问数据的请求,所述访问数据的请求包括待访问节点的标识。
在本实施方式中,接收模块61接收客户端发送的访问数据的请求的功能,可以通过NAS存储系统100中的接口211实现,访问数据的请求的具体实现细节可以参考图4所示的步骤S407的具体细节,在这里不再赘述。
所述获取模块62,还用于根据所述待访问节点的标识,获取所述待访问节点的访问权限。其中,在所述待访问节点的权限版本号是所述待访问节点及所述待访问节点的所有父节点所具备的权限版本号中最新的时,所述待访问节点的访问权限为记录的所述待访问节点的权限记录,在所述待访问节点的权限版本号不是所述待访问节点及所述待访问节点的所有父节点所具备的权限版本号中最新的时,所述待访问节点的访问权限继承自所述待访问节点的具备最新权限版本号的父节点所对应的权限记录。
在本实施方式中,获取模块62根据所述待访问节点的标识,获取所述待访问节点的访问权限的功能可以通过NAS存储系统100中的接口212实现,也可以通过NAS存储系统100中的处理器213或者控制模块230实现,获取模块62根据所述待访问节点的标识,获取所述待访问节点的访问权限的具体实现细节,可以参考图4所示的步骤S408、S409的具体细节,在这里不再赘述。
所述处理模块63,还用于依据所述待访问节点的访问权限进行鉴权,当鉴权通过后,访问所述待访问节点的数据。
在本实施方式中,处理模块63依据所述待访问节点的访问权限进行鉴权,当鉴权通过后,访问所述待访问节点的数据的功能可以通过NAS存储系统100中的处理器213或者控制模块230实现,处理模块63依据所述待访问节点的访问权限进行鉴权,当鉴权通过后,访问所述待访问节点的数据的具体实现细节,可以参考图4所示的步骤S410的具体细节,在这里不再赘述。
作为一种可选的实施方式,所述获取模块62,还用于查询所述全局访问控制列表,根据所述待访问节点的标识,确认所述待访问节点的路径信息,查询所述待访问节点的路径信息指示的每一个节点的权限版本号,确认权限版本号最新的节点,获取所述权限版本号最新的节点的权限记录。其中,所述待访问节点的路径信息用于指示所述待访问节点和所述待访问节点的所有父节点,所述权限版本号最新的节点的权限记录为所述待访问节点的访问权限。
在本实施方式中,获取模块62查询所述全局访问控制列表,根据所述待访问节点的标识,确认所述待访问节点的路径信息的功能可以通过NAS存储系统100中的存储阵列220实现,也可以通过NAS存储系统100中的控制器210或者处理器213或者控制模块230实现,获取模块62查询所述全局访问控制列表,根据所述待访问节点的标识,确认所述待访问节点的路径信息的具体实现细节,可以参考图4所示的步骤S408的具体细节,在这里不再赘述。
在本实施方式中,获取模块62查询所述待访问节点的路径信息指示的每一个节点的权限版本号,确认权限版本号最新的节点的功能可以通过NAS存储系统100中的存储阵列220实现,也可以通过NAS存储系统100中的控制器210或者处理器213或者控制模块230实现,获取模块62查询所述待访问节点的路径信息指示的每一个节点的权限版本号,确认权限版本号最新的节点的具体实现细节,可以参考图4所示的步骤S409的具体细节,在这里不再赘述。
在本实施方式中,获取模块62获取所述权限版本号最新的节点的权限记录的功能可以通过NAS存储系统100中的接口212实现,也可以通过NAS存储系统100中的处理器213或者控制模块230实现。获取模块62获取所述权限版本号最新的节点的权限记录的具体实现细节,可以参考图4所示的步骤S409的具体细节,在这里不再赘述。
可选的,本发明中的各个模块和部件可以继承在一起,也可以分开设置。
作为一种可选的实施方式,所述获取模块62,还用于按照预设的遍历规则,比较所述待访问节点的路径信息指示的每一个节点的权限版本号,确认权限版本号最新的节点。通过预设的遍历规则比较所述待访问节点的路径信息指示的每一个节点的权限版本号,确认权限版本号最新的节点,可以依据目录树中的节点的访问权限分布规律预先设定遍历规则,以通过合适的预设的遍历规则比较所述待访问节点的路径中的每一个节点的权限版本号,确认权限版本号最新的节点,提高遍历比较的效率。
在本实施方式中,获取模块62按照预设的遍历规则,比较所述待访问节点的路径信息指示的每一个节点的权限版本号,确认权限版本号最新的节点的功能可以通过NAS存储系统100中的存储阵列220实现,也可以通过NAS存储系统100中的控制器210或者处理器213或者控制模块230实现,获取模块62按照预设的遍历规则,比较所述待访问节点的路径信息指示的每一个节点的权限版本号,确认权限版本号最新的节点的具体实现细节,可以参考图4所示的步骤S409的具体细节,在这里不再赘述。
作为一种可选的实施方式,所述目录树中的每个节点的路径信息指示的所有节点分别属于不同的目录级别,所述目录树中的每个节点的路径信息指示的所有节点中的父节点的目录级别高于所属于所述父节点的子节点的目录级别,所述待访问节点的目录级别最低,根节点的目录级别最高。所述获取模块62,还用于从所述根节点开始,每次选取并比较所述待访问节点的路径信息指示的所有节点中的两个节点的权限版本号,确认权限版本号最新的节点,依据所述目录级别从高至低的顺序,直至遍历比较至所述待访问节点时,确认的权限版本号最新的节点为所述权限版本号最新的节点。
在本实施方式中,获取模块62从所述根节点开始,每次选取并比较所述待访问节点的路径信息指示的所有节点中的两个节点的权限版本号,确认权限版本号最新的节点,依据所述目录级别从高至低的顺序,直至遍历比较至所述待访问节点时,确认的权限版本号最新的节点为所述权限版本号最新的节点的功能可以通过NAS存储系统100中的存储阵列220实现,也可以通过NAS存储系统100中的控制器210或者处理器213或者控制模块230实现,获取模块62从所述根节点开始,每次选取并比较所述待访问节点的路径信息指示的所有节点中的两个节点的权限版本号,确认权限版本号最新的节点,依据所述目录级别从高至低的顺序,直至遍历比较至所述待访问节点时,确认的权限版本号最新的节点为所述权限版本号最新的节点的具体实现细节,可以参考图4所示的步骤S409的具体细节,在这里不再赘述。
作为一种可选的实施方式,所述目录树中的每个节点的路径信息指示的所有节点分别属于不同的目录级别,所述目录树中的每个节点的路径信息指示的所有节点中的父节点的目录级别高于所属于所述父节点的子节点的目录级别,所述待访问节点的目录级别最低,所述根节点的目录级别最高。所述获取模块62,还用于从所述待访问节点开始,每次选取并比较所述待访问节点的路径信息指示的所有节点中的两个节点的权限版本号,确认权限版本号最新的节点,依据所述目录级别从低至高的顺序,直至遍历比较至所述根节点时,确认的权限版本号最新的节点为所述权限版本号最新的节点。
在本实施方式中,获取模块62从所述待访问节点开始,每次选取并比较所述待访问节点的路径信息指示的所有节点中的两个节点的权限版本号,确认权限版本号最新的节点,依据所述目录级别从低至高的顺序,直至遍历比较至所述根节点时,确认的权限版本号最新的节点为所述权限版本号最新的节点的功能可以通过NAS存储系统100中的存储阵列220实现,也可以通过NAS存储系统100中的控制器210或者处理器213或者控制模块230实现,获取模块62从所述待访问节点开始,每次选取并比较所述待访问节点的路径信息指示的所有节点中的两个节点的权限版本号,确认权限版本号最新的节点,依据所述目录级别从低至高的顺序,直至遍历比较至所述根节点时,确认的权限版本号最新的节点为所述权限版本号最新的节点的具体实现细节,可以参考图4所示的步骤S409的具体细节,在这里不再赘述。
作为一种可选的实施方式,所述接收模块61,还用于接收创建节点的请求。所述创建节点的请求包括所述目录树的新增的节点的标识和路径信息,所述新增的节点的路径信息指示从所述根节点到所述新增的节点的访问分支上的所有节点。
在本实施方式中,接收模块61接收客户端发送的创建节点的请求的功能,可以通过NAS存储系统100中的接口211实现,创建节点的请求的具体实现细节可以参考图5所示的步骤S510的具体细节,在这里不再赘述。
所述处理模块63,还用于保存所述目录树的所述新增的节点的标识和路径信息的对应关系至所述全局访问控制列表中,保存所述新增的节点的权限版本号至所述全局访问控制列表中。所述新增的节点的权限版本号的初始值小于或等于创建的所述全局版本参数的初始值,为所述新增的节点设置初始权限版本号,为所述新增的节点设置的初始权限版本号小于或等于所述初始全局版本参数。
在本实施方式中,处理模块63保存所述目录树的所述新增的节点的标识和路径信息的对应关系至所述全局访问控制列表中的功能可以通过NAS存储系统100中的处理器213或者控制模块230实现,处理模块63保存所述目录树的所述新增的节点的标识和路径信息的对应关系至所述全局访问控制列表中的具体实现细节,可以参考图5所示的步骤S520的具体细节,在这里不再赘述。
在本实施方式中,处理模块63保存所述新增的节点的权限版本号至所述全局访问控制列表中的功能可以通过NAS存储系统100中的处理器213或者控制模块230实现,处理模块63保存所述新增的节点的权限版本号至所述全局访问控制列表中的具体实现细节,可以参考图5所示的步骤S530的具体细节,在这里不再赘述。
本发明提供一种文件系统的权限设置方法及装置,所述方法由存储系统执行,具体包括所述方法应用于存储系统,包括:所述存储系统接收权限设置请求,所述权限设置请求用于请求对文件系统的目录树上的节点进行访问权限设置,所述权限设置请求包括待设置权限的节点的标识和权限记录。所述存储系统接收权限设置请求后,所述存储系统获取当前记录的全局版本参数,对所述当前记录的全局版本参数进行更新,得到最新的全局版本参数。所述存储系统保存所述待设置权限的节点的标识和权限记录,并将所述最新的全局版本参数作为所述待设置权限的节点的权限版本号。其中,全局版本参数递增或者递减设置,每个全局版本参数表示所述目录树的任意节点的一次权限设置操作。其中,所述待设置权限的节点的子节点的权限记录继承自所述待设置权限的节点的当前权限设置操作之后的权限记录。本发明提供的文件系统的权限设置方法,实现快速设置目录树的节点的访问权限的权限记录,通过更新的全局版本参数表示所述目录树的任意节点的一次权限设置操作,该方法中,所述待设置权限的节点的子节点的权限记录继承自所述待设置权限的节点的当前权限设置操作之后的权限记录,所以仅设置目录树的父节点的权限记录,并使父节点对应的目录下的所有文件及所有子目录都继承所述父节点的权限记录,不用遍历父节点下的所有子目录或者文件来分别设置父节点下的每一个子目录或者文件的权限记录,提高了目录树的访问权限的设置效率。对父节点设置权限记录,不用对父节点对应的目录下的子目录以及文件重复设置权限记录,减少了存储空间的开销。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,设备和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块63中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的保护范围。
Claims (27)
1.一种文件系统的权限设置方法,其特征在于,包括:
接收权限设置请求,所述权限设置请求用于请求对文件系统的目录树上的节点进行访问权限设置,所述权限设置请求包括待设置权限的节点的标识和权限记录;
获取当前记录的全局版本参数;
对所述当前记录的全局版本参数进行更新,得到最新的全局版本参数,其中,全局版本参数递增或者递减设置,每个全局版本参数表示所述目录树的任意节点的一次权限设置操作;
保存所述待设置权限的节点的标识和权限记录,并将所述最新的全局版本参数作为所述待设置权限的节点的权限版本号,其中,所述待设置权限的节点的子节点的权限记录继承自所述待设置权限的节点的当前权限设置操作之后的权限记录。
2.如权利要求1所述的方法,其特征在于,所述获取当前记录的全局版本参数,包括:
查询全局访问控制列表,获取当前记录的全局版本参数,所述全局访问控制列表保存在所述目录树的根节点的元数据中,所述全局访问控制列表保存有所述全局版本参数。
3.如权利要求2所述的方法,其特征在于,所述接收权限设置请求之前,还包括:
创建全局访问控制列表,并为所述新创建的全局访问控制列表设置初始全局版本参数。
4.如权利要求2或3所述的方法,其特征在于,所述权限设置请求还包括所述待设置权限的节点的路径信息,所述待设置权限的节点的路径信息指示从所述根节点到所述待设置权限的节点的访问分支上的所有节点,所述方法还包括:
保存所述待设置权限的节点的路径信息至所述全局访问控制列表,其中,所述待设置权限的节点的标识、路径信息和权限记录形成一组对应关系。
5.如权利要求1-4任一所述的方法,其特征在于,还包括:
接收访问数据的请求,所述访问数据的请求包括待访问节点的标识;
根据所述待访问节点的标识,获取所述待访问节点的访问权限,其中,在所述待访问节点的权限版本号不是所述待访问节点的路径信息所指示的全部节点所具备的权限版本号中最新的时,所述待访问节点的访问权限继承自所述待访问节点的具备最新权限版本号的父节点所对应的权限记录;
依据所述待访问节点的访问权限进行鉴权,当鉴权通过后,访问所述待访问节点的数据。
6.如权利要求5所述的方法,其特征在于,在所述待访问节点的权限版本号是所述待访问节点的路径信息所指示的全部节点所具备的权限版本号中最新的时,所述待访问节点的访问权限为记录的所述待访问节点的权限记录。
7.如权利要求6所述的方法,所述根据所述待访问节点的标识,获取所述待访问节点的访问权限,包括:查询所述全局访问控制列表,根据所述待访问节点的标识,确认所述待访问节点的路径信息,所述待访问节点的路径信息用于指示所述待访问节点和所述待访问节点的所有父节点;
查询所述待访问节点的路径信息指示的每一个节点的权限版本号,确认权限版本号最新的节点;
获取所述权限版本号最新的节点的权限记录,所述权限版本号最新的节点的权限记录为所述待访问节点的访问权限。
8.如权利要求7所述的方法,其特征在于,所述查询所述待访问节点的路径信息指示的每一个节点的权限版本号,确认权限版本号最新的节点,包括:
按照预设的遍历规则,比较所述待访问节点的路径信息指示的每一个节点的权限版本号,确认权限版本号最新的节点。
9.如权利要求2-8任一所述的方法,其特征在于,还包括:
接收创建节点的请求,所述创建节点的请求包括所述目录树的新增的节点的标识和路径信息,所述新增的节点的路径信息指示从所述根节点到所述新增的节点的访问分支上的所有节点;
保存所述目录树的所述新增的节点的标识和路径信息的对应关系至所述全局访问控制列表中;
为所述新增的节点设置初始权限版本号,为所述新增的节点设置的初始权限版本号小于或等于所述初始全局版本参数。
10.一种文件系统的权限设置装置,其特征在于,包括:
接口,用于接收权限设置请求,所述权限设置请求用于请求对文件系统的目录树上的节点进行访问权限设置,所述权限设置请求包括待设置权限的节点的标识和权限记录;
处理器,用于获取当前记录的全局版本参数,对所述当前记录的全局版本参数进行更新,得到最新的全局版本参数,保存所述待设置权限的节点的标识和权限记录,并将所述最新的全局版本参数作为所述待设置权限的节点的权限版本号,其中,全局版本参数递增或者递减设置,每个全局版本参数表示所述目录树的任意节点的一次权限设置操作,所述待设置权限的节点的子节点的权限记录继承自所述待设置权限的节点的当前权限设置操作之后的权限记录。
11.如权利要求10所述的装置,其特征在于,所述处理器,还用于查询全局访问控制列表,获取当前记录的全局版本参数,所述全局访问控制列表保存在所述目录树的根节点的元数据中,所述全局访问控制列表保存有所述全局版本参数。
12.如权利要求11所述的装置,其特征在于,所述处理器,还用于创建全局访问控制列表,并为所述新创建的全局访问控制列表设置初始全局版本参数。
13.如权利要求11或12所述的装置,其特征在于,所述权限设置请求还包括所述待设置权限的节点的路径信息,所述待设置权限的节点的路径信息指示从所述根节点到所述待设置权限的节点的访问分支上的所有节点,所述处理器,还用于保存所述待设置权限的节点的路径信息至所述全局访问控制列表,其中,所述待设置权限的节点的标识、路径信息和权限记录形成一组对应关系。
14.如权利要求10-13任一所述的装置,其特征在于,所述接口,还用于接收访问数据的请求,所述访问数据的请求包括待访问节点的标识;
所述处理器,还用于根据所述待访问节点的标识,获取所述待访问节点的访问权限,依据所述待访问节点的访问权限进行鉴权,当鉴权通过后,访问所述待访问节点的数据,其中,在所述待访问节点的权限版本号不是所述待访问节点的路径信息所指示的全部节点所具备的权限版本号中最新的时,所述待访问节点的访问权限继承自所述待访问节点的具备最新权限版本号的父节点所对应的权限记录。
15.如权利要求14所述的装置,其特征在于,在所述待访问节点的权限版本号是所述待访问节点的路径信息所指示的全部节点所具备的权限版本号中最新的时,所述待访问节点的访问权限为记录的所述待访问节点的权限记录。
16.如权利要求15所述的装置,所述处理器,还用于查询所述全局访问控制列表,根据所述待访问节点的标识,确认所述待访问节点的路径信息,查询所述待访问节点的路径信息指示的每一个节点的权限版本号,确认权限版本号最新的节点,获取所述权限版本号最新的节点的权限记录,所述权限版本号最新的节点的权限记录为所述待访问节点的访问权限,其中,所述待访问节点的路径信息用于指示所述待访问节点和所述待访问节点的所有父节点。
17.如权利要求16所述的装置,其特征在于,所述处理器,还用于按照预设的遍历规则,比较所述待访问节点的路径信息指示的每一个节点的权限版本号,确认权限版本号最新的节点。
18.如权利要求11-17任一所述的装置,其特征在于,所述接口,还用于接收创建节点的请求,所述创建节点的请求包括所述目录树的新增的节点的标识和路径信息,所述新增的节点的路径信息指示从所述根节点到所述新增的节点的访问分支上的所有节点;
所述处理器,还用于保存所述目录树的所述新增的节点的标识和路径信息的对应关系至所述全局访问控制列表中,保存所述新增的节点的权限版本号至所述全局访问控制列表中,所述新增的节点的权限版本号的初始值小于或等于创建的所述全局版本参数的初始值,为所述新增的节点设置初始权限版本号,为所述新增的节点设置的初始权限版本号小于或等于所述初始全局版本参数。
19.一种文件系统的权限设置装置,其特征在于,包括:
接收模块,用于接收权限设置请求,所述权限设置请求用于请求对文件系统的目录树上的节点进行访问权限设置,所述权限设置请求包括待设置权限的节点的标识和权限记录;
获取模块,用于获取当前记录的全局版本参数;
处理模块,用于对所述当前记录的全局版本参数进行更新,得到最新的全局版本参数,保存所述待设置权限的节点的标识和权限记录,并将所述最新的全局版本参数作为所述待设置权限的节点的权限版本号,其中,全局版本参数递增或者递减设置,每个全局版本参数表示所述目录树的任意节点的一次权限设置操作,所述待设置权限的节点的子节点的权限记录继承自所述待设置权限的节点的当前权限设置操作之后的权限记录。
20.如权利要求19所述的装置,其特征在于,所述获取模块,还用于查询全局访问控制列表,获取当前记录的全局版本参数,所述全局访问控制列表保存在所述目录树的根节点的元数据中,所述全局访问控制列表保存有所述全局版本参数。
21.如权利要求20所述的装置,其特征在于,所述处理模块,还用于创建全局访问控制列表,并为所述新创建的全局访问控制列表设置初始全局版本参数。
22.如权利要求20或21所述的装置,其特征在于,所述权限设置请求还包括所述待设置权限的节点的路径信息,所述待设置权限的节点的路径信息指示从所述根节点到所述待设置权限的节点的访问分支上的所有节点,所述处理模块,还用于保存所述待设置权限的节点的路径信息至所述全局访问控制列表,其中,所述待设置权限的节点的标识、路径信息和权限记录形成一组对应关系。
23.如权利要求19-22任一所述的装置,其特征在于,所述接收模块,还用于接收访问数据的请求,所述访问数据的请求包括待访问节点的标识;
所述获取模块,还用于根据所述待访问节点的标识,获取所述待访问节点的访问权限,其中,在所述待访问节点的权限版本号不是所述待访问节点的路径信息所指示的全部节点所具备的权限版本号中最新的时,所述待访问节点的访问权限继承自所述待访问节点的具备最新权限版本号的父节点所对应的权限记录;
所述处理模块,还用于依据所述待访问节点的访问权限进行鉴权,当鉴权通过后,访问所述待访问节点的数据。
24.如权利要求23所述的装置,其特征在于,在所述待访问节点的权限版本号是所述待访问节点的路径信息所指示的全部节点所具备的权限版本号中最新的时,所述待访问节点的访问权限为记录的所述待访问节点的权限记录。
25.如权利要求24所述的装置,所述获取模块,还用于查询所述全局访问控制列表,根据所述待访问节点的标识,确认所述待访问节点的路径信息,查询所述待访问节点的路径信息指示的每一个节点的权限版本号,确认权限版本号最新的节点,获取所述权限版本号最新的节点的权限记录,其中,所述待访问节点的路径信息用于指示所述待访问节点和所述待访问节点的所有父节点,所述权限版本号最新的节点的权限记录为所述待访问节点的访问权限。
26.如权利要求25所述的装置,其特征在于,所述获取模块,还用于按照预设的遍历规则,比较所述待访问节点的路径信息指示的每一个节点的权限版本号,确认权限版本号最新的节点。
27.如权利要求20-26任一所述的装置,其特征在于,所述接收模块,还用于接收创建节点的请求,所述创建节点的请求包括所述目录树的新增的节点的标识和路径信息,所述新增的节点的路径信息指示从所述根节点到所述新增的节点的访问分支上的所有节点;
所述处理模块,还用于保存所述目录树的所述新增的节点的标识和路径信息的对应关系至所述全局访问控制列表中,保存所述新增的节点的权限版本号至所述全局访问控制列表中,所述新增的节点的权限版本号的初始值小于或等于创建的所述全局版本参数的初始值,为所述新增的节点设置初始权限版本号,为所述新增的节点设置的初始权限版本号小于或等于所述初始全局版本参数。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710526991.0A CN107451486B (zh) | 2017-06-30 | 2017-06-30 | 一种文件系统的权限设置方法及装置 |
JP2019561914A JP6965370B2 (ja) | 2017-06-30 | 2018-02-13 | ファイルシステムパーミッション設定方法及び装置 |
PCT/CN2018/076743 WO2019000979A1 (zh) | 2017-06-30 | 2018-02-13 | 一种文件系统的权限设置方法及装置 |
EP18825506.1A EP3614290B1 (en) | 2017-06-30 | 2018-02-13 | File system access rights configuration method and device |
US16/718,995 US11238175B2 (en) | 2017-06-30 | 2019-12-18 | File system permission setting method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710526991.0A CN107451486B (zh) | 2017-06-30 | 2017-06-30 | 一种文件系统的权限设置方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107451486A true CN107451486A (zh) | 2017-12-08 |
CN107451486B CN107451486B (zh) | 2021-05-18 |
Family
ID=60488586
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710526991.0A Active CN107451486B (zh) | 2017-06-30 | 2017-06-30 | 一种文件系统的权限设置方法及装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11238175B2 (zh) |
EP (1) | EP3614290B1 (zh) |
JP (1) | JP6965370B2 (zh) |
CN (1) | CN107451486B (zh) |
WO (1) | WO2019000979A1 (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108614976A (zh) * | 2018-04-28 | 2018-10-02 | 苏州科达科技股份有限公司 | 权限配置方法、装置及存储介质 |
WO2019000979A1 (zh) * | 2017-06-30 | 2019-01-03 | 华为技术有限公司 | 一种文件系统的权限设置方法及装置 |
CN109145621A (zh) * | 2018-08-14 | 2019-01-04 | 阿里巴巴集团控股有限公司 | 文档管理方法及装置 |
CN109167775A (zh) * | 2018-08-23 | 2019-01-08 | 郑州云海信息技术有限公司 | 基于分布式存储的acl设置方法、装置、终端及存储介质 |
CN110245149A (zh) * | 2019-06-25 | 2019-09-17 | 北京明略软件系统有限公司 | 元数据的版本管理方法及装置 |
CN110781505A (zh) * | 2019-10-11 | 2020-02-11 | 南京医基云医疗数据研究院有限公司 | 系统构建方法及装置、检索方法及装置、介质和设备 |
CN111258958A (zh) * | 2020-01-10 | 2020-06-09 | 北京猎豹移动科技有限公司 | 一种数据获取方法、数据提供方法及装置 |
CN111538864A (zh) * | 2020-03-25 | 2020-08-14 | 新华三技术有限公司合肥分公司 | 一种减少Buildrun消耗的方法及装置 |
CN111881473A (zh) * | 2020-07-22 | 2020-11-03 | 深圳市友杰智新科技有限公司 | 隐私文件保护方法、装置、计算机设备和可读存储介质 |
CN112685606A (zh) * | 2020-12-31 | 2021-04-20 | 上海氪邦智能技术有限公司 | 权限规则的配置/管理方法、系统、计算机介质及终端 |
CN113094737A (zh) * | 2019-12-23 | 2021-07-09 | 斑马智行网络(香港)有限公司 | 信息处理方法、装置及设备 |
CN115086337A (zh) * | 2022-06-23 | 2022-09-20 | 中国工商银行股份有限公司 | 文件处理方法、装置、存储介质以及电子设备 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10862750B2 (en) * | 2019-03-31 | 2020-12-08 | Td Ameritrade Ip Company, Inc. | Network configuration apparatus |
US20220198283A1 (en) * | 2020-12-22 | 2022-06-23 | Paypal, Inc. | Dynamic reconstruction of decision tree structures |
CN113190550B (zh) * | 2021-03-31 | 2022-03-22 | 郑州信大捷安信息技术股份有限公司 | 一种基于树形结构的组织结构权限分配方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1567255A (zh) * | 2003-09-02 | 2005-01-19 | 四川大学 | 一种安全文件系统的存储及访问控制方法 |
CN1609826A (zh) * | 2003-10-18 | 2005-04-27 | 鸿富锦精密工业(深圳)有限公司 | 遍历访问控制列表中许可权方法 |
CN103064957A (zh) * | 2012-12-28 | 2013-04-24 | 华为技术有限公司 | 实现acl的方法及客户端 |
CN103176866A (zh) * | 2013-04-02 | 2013-06-26 | 浪潮电子信息产业股份有限公司 | 一种应用于ntfs文件系统下的文件权限备份方法 |
CN103620616A (zh) * | 2013-03-28 | 2014-03-05 | 华为技术有限公司 | 一种访问控制权限管理方法和装置 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100377110C (zh) * | 2003-10-10 | 2008-03-26 | 鸿富锦精密工业(深圳)有限公司 | 访问控制列表中用户权限快取生成系统及方法 |
TWI263894B (en) | 2003-10-15 | 2006-10-11 | Hon Hai Prec Ind Co Ltd | System and method for quickly getting user's permission in access control list |
JP4514768B2 (ja) * | 2007-04-19 | 2010-07-28 | 株式会社エスグランツ | カップルドノードツリーの退避/復元装置、退避/復元方法及びプログラム |
JP4498409B2 (ja) * | 2007-12-28 | 2010-07-07 | 株式会社エスグランツ | データベースのインデックスキー更新方法及びプログラム |
JP5165662B2 (ja) * | 2009-10-27 | 2013-03-21 | 株式会社高速屋 | ビット列キー分類・分配装置、分類・分配方法及びプログラム |
EP2515245A1 (en) * | 2009-11-30 | 2012-10-24 | S. Grants Co., Ltd. | Bit stream retrieval device, retrieval method, and program |
US8713056B1 (en) * | 2011-03-30 | 2014-04-29 | Open Text S.A. | System, method and computer program product for efficient caching of hierarchical items |
WO2016131473A1 (en) * | 2015-02-16 | 2016-08-25 | Nec Europe Ltd. | Method and system for verifying information of a data item in a plurality of different data items |
CN105262800B (zh) * | 2015-09-23 | 2018-09-28 | 浪潮(北京)电子信息产业有限公司 | 一种应用于集群nas文件系统的权限控制方法及系统 |
CN106713493B (zh) * | 2017-01-20 | 2020-09-29 | 苏州浪潮智能科技有限公司 | 一种在计算机集群环境中构建分布式文件系统及方法 |
US10168998B2 (en) * | 2017-03-20 | 2019-01-01 | Google Llc | Automated interface design |
CN107451486B (zh) * | 2017-06-30 | 2021-05-18 | 华为技术有限公司 | 一种文件系统的权限设置方法及装置 |
-
2017
- 2017-06-30 CN CN201710526991.0A patent/CN107451486B/zh active Active
-
2018
- 2018-02-13 JP JP2019561914A patent/JP6965370B2/ja active Active
- 2018-02-13 EP EP18825506.1A patent/EP3614290B1/en active Active
- 2018-02-13 WO PCT/CN2018/076743 patent/WO2019000979A1/zh unknown
-
2019
- 2019-12-18 US US16/718,995 patent/US11238175B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1567255A (zh) * | 2003-09-02 | 2005-01-19 | 四川大学 | 一种安全文件系统的存储及访问控制方法 |
CN1609826A (zh) * | 2003-10-18 | 2005-04-27 | 鸿富锦精密工业(深圳)有限公司 | 遍历访问控制列表中许可权方法 |
CN103064957A (zh) * | 2012-12-28 | 2013-04-24 | 华为技术有限公司 | 实现acl的方法及客户端 |
CN103620616A (zh) * | 2013-03-28 | 2014-03-05 | 华为技术有限公司 | 一种访问控制权限管理方法和装置 |
CN103176866A (zh) * | 2013-04-02 | 2013-06-26 | 浪潮电子信息产业股份有限公司 | 一种应用于ntfs文件系统下的文件权限备份方法 |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019000979A1 (zh) * | 2017-06-30 | 2019-01-03 | 华为技术有限公司 | 一种文件系统的权限设置方法及装置 |
US11238175B2 (en) | 2017-06-30 | 2022-02-01 | Huawei Technologies Co., Ltd. | File system permission setting method and apparatus |
CN108614976A (zh) * | 2018-04-28 | 2018-10-02 | 苏州科达科技股份有限公司 | 权限配置方法、装置及存储介质 |
CN109145621A (zh) * | 2018-08-14 | 2019-01-04 | 阿里巴巴集团控股有限公司 | 文档管理方法及装置 |
CN109167775B (zh) * | 2018-08-23 | 2021-10-22 | 郑州云海信息技术有限公司 | 基于分布式存储的acl设置方法、装置、终端及存储介质 |
CN109167775A (zh) * | 2018-08-23 | 2019-01-08 | 郑州云海信息技术有限公司 | 基于分布式存储的acl设置方法、装置、终端及存储介质 |
CN110245149A (zh) * | 2019-06-25 | 2019-09-17 | 北京明略软件系统有限公司 | 元数据的版本管理方法及装置 |
CN110781505A (zh) * | 2019-10-11 | 2020-02-11 | 南京医基云医疗数据研究院有限公司 | 系统构建方法及装置、检索方法及装置、介质和设备 |
CN113094737A (zh) * | 2019-12-23 | 2021-07-09 | 斑马智行网络(香港)有限公司 | 信息处理方法、装置及设备 |
CN111258958A (zh) * | 2020-01-10 | 2020-06-09 | 北京猎豹移动科技有限公司 | 一种数据获取方法、数据提供方法及装置 |
CN111538864A (zh) * | 2020-03-25 | 2020-08-14 | 新华三技术有限公司合肥分公司 | 一种减少Buildrun消耗的方法及装置 |
CN111881473A (zh) * | 2020-07-22 | 2020-11-03 | 深圳市友杰智新科技有限公司 | 隐私文件保护方法、装置、计算机设备和可读存储介质 |
CN111881473B (zh) * | 2020-07-22 | 2024-03-19 | 深圳市友杰智新科技有限公司 | 隐私文件保护方法、装置、计算机设备和可读存储介质 |
CN112685606A (zh) * | 2020-12-31 | 2021-04-20 | 上海氪邦智能技术有限公司 | 权限规则的配置/管理方法、系统、计算机介质及终端 |
CN115086337A (zh) * | 2022-06-23 | 2022-09-20 | 中国工商银行股份有限公司 | 文件处理方法、装置、存储介质以及电子设备 |
CN115086337B (zh) * | 2022-06-23 | 2024-04-26 | 中国工商银行股份有限公司 | 文件处理方法、装置、存储介质以及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
JP2020524321A (ja) | 2020-08-13 |
EP3614290A1 (en) | 2020-02-26 |
JP6965370B2 (ja) | 2021-11-10 |
EP3614290B1 (en) | 2023-10-04 |
US11238175B2 (en) | 2022-02-01 |
WO2019000979A1 (zh) | 2019-01-03 |
EP3614290A4 (en) | 2020-04-29 |
US20200125758A1 (en) | 2020-04-23 |
CN107451486B (zh) | 2021-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107451486A (zh) | 一种文件系统的权限设置方法及装置 | |
CN107403105A (zh) | 一种文件系统的权限设置方法及装置 | |
US20200372170A1 (en) | Systems and Methods for Facilitating Access to Private Files Using a Cloud Storage System | |
CN106294585B (zh) | 一种云计算平台下的存储方法 | |
JP4671332B2 (ja) | ユーザ識別情報を変換するファイルサーバ | |
CN100511203C (zh) | 数据库访问控制方法、控制装置及代理处理服务器装置 | |
EP2405607B1 (en) | Privilege management system and method based on object | |
TWI507891B (zh) | 具雲端儲存空間管理功能之電子裝置、雲端儲存系統、其方法及其電腦程式產品 | |
US20090083367A1 (en) | User profile aggregation | |
EP1687742A1 (en) | Computerized system, method and program product for managing an enterprise storage system | |
CN104917843B (zh) | 云存储与医疗图像无缝对接系统 | |
CN103795530B (zh) | 一种跨域控制器认证的方法、装置及主机 | |
JP2006209294A (ja) | アクセス負荷を分散するストレージシステム | |
CN103067479A (zh) | 一种基于文件冷热的网盘同步方法及系统 | |
JP2012008854A (ja) | ストレージ仮想化装置 | |
CN107172061A (zh) | 一种实现共享的方法和系统 | |
KR101666064B1 (ko) | 분산 파일 시스템에서 url정보를 이용한 데이터 관리 장치 및 그 방법 | |
CN108683672A (zh) | 一种权限管理的方法及装置 | |
CN110417777B (zh) | 一种优化的微服务间通信的方法及装置 | |
CN102932468B (zh) | 共享数据访问方法 | |
CN107305496A (zh) | 应用程序app下载方法及无线网络设备 | |
CN104537081B (zh) | 文件管理系统和方法 | |
CN106776991A (zh) | 一种基于互联网的工程资料填报的方法 | |
CN103793239B (zh) | 云端丛集系统及其开机部署方法 | |
US20140358921A1 (en) | Delegating resembling data of an organization to a linked device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |