CN117194332A - 一种文件系统中用户权限处理方法、装置、设备及介质 - Google Patents
一种文件系统中用户权限处理方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN117194332A CN117194332A CN202311230162.XA CN202311230162A CN117194332A CN 117194332 A CN117194332 A CN 117194332A CN 202311230162 A CN202311230162 A CN 202311230162A CN 117194332 A CN117194332 A CN 117194332A
- Authority
- CN
- China
- Prior art keywords
- access control
- control list
- authority
- protocol
- file
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title description 13
- 238000000034 method Methods 0.000 claims abstract description 38
- 238000012545 processing Methods 0.000 claims abstract description 26
- 238000006243 chemical reaction Methods 0.000 claims description 69
- 230000004044 response Effects 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 11
- 230000008569 process Effects 0.000 claims description 11
- 238000012795 verification Methods 0.000 claims description 10
- 238000009825 accumulation Methods 0.000 claims description 7
- 230000000694 effects Effects 0.000 claims description 6
- 238000000899 pressurised-fluid extraction Methods 0.000 claims description 6
- 238000013519 translation Methods 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 230000014509 gene expression Effects 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000012550 audit Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Landscapes
- Storage Device Security (AREA)
Abstract
本发明涉及计算机技术领域,尤其涉及一种文件系统中用户权限处理方法、装置、设备及介质。所述方法包括:在文件系统中定义通用访问控制列表结构;响应于客户端操作所述文件系统,则获取所述客户端所使用的协议及协议对应的访问控制列表;基于所述操作将所述客户端所使用的协议对应的访问控制列表转换成通用访问控制列表结构以记录用户权限。本发明的方案通过在文件系统定义与协议无关的通用访问控制列表结构来保证多种协议之间的相互兼容,在客户端操作文件系统时,基于操作将客户端的协议对应的访问控制列表转换成通用访问控制列表结构,从而实现多种协议之间的完整权限互通。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种文件系统中用户权限处理方法、装置、设备及介质。
背景技术
CFS(Cluster File System,集群文件系统)文件系统目前采用扩展权限位的方式来保证对SMB/NFS V3/NFS V4/POSIX访问控制列表(Access Control List,简称ACL)多种协议的支持,此种方式主要是将原来的rwx权限扩充为读数据、读权限等十多种NTFS权限的方式,但在存储方式上仍采用了POSIX Access/Default ACL的概念,即把各种上层协议设置的权限通过分类组合方式分为Access/Default两个扩展属性进行存储,从而保证对POSIX ACL的兼容。
然而,现有权限处理方式的主要不足是将上层协议的权限分为Access/Default两个属性存储后,会导致反向解析时的信息缺失。按照POSIX ACL定义规范,用于校验的权限都要存放于Access ACL中,Default ACL主要是控制如何往子目录子文件进行权限的继承;以SMB为例,对于SMB NTFS权限,继承权限可以同时支持作用于当前文件和子文件,因此从SMB NTFS权限到POSIX ACL权限转换时,会把继承权限中作用于当前目录的权限复制到Access ACL上一份,以保证ICFS文件系统能够按照Access ACL进行校验。当SMB客户端进行反向查询时,为了还原原本的NTFS权限,需要再次将Access ACL中来自继承部分的权限扣除掉;当多条不同继承权限的ACL都存在往Access ACL权限的复制动作时,就会存在多种权限合并,进而反向拆解无法真实还原的情况;另一方面,POSIX ACL限制U/G/O这三个特殊用户身份在Access/Default ACL中只能出现一条,无法适应同一用户对象处理多个不同继承权限的情况。
发明内容
有鉴于此,有必要针对以上技术问题,提供一种文件系统中用户权限处理方法、装置、设备及介质。
根据本发明的第一方面,提供了一种文件系统中用户权限处理方法,所述方法包括:
在文件系统中定义通用访问控制列表结构;
响应于客户端操作所述文件系统,则获取所述客户端所使用的协议及协议对应的访问控制列表;
基于所述操作将所述客户端所使用的协议对应的访问控制列表转换成通用访问控制列表结构以记录用户权限。
在一些实施例中,所述通用访问控制列表结构包括:访问控制列表的版本号、类型、属主UID、属主GID、DACL中的ACE个数、SACL中的ACE个数、包含继承标记位、权限位、以及对应的账户主体信息的至少一个ACE。
在一些实施例中,所述客户端所使用的协议包括:SMB协议、NFS V4协议、NFS V3协议、采用POSIX接口的至少一个协议,其中,所述SMB协议对应NTFS访问控制列表,所述NFSV4协议对应V4访问控制列表,所述NFS V3协议和采用POSIX接口的至少一个协议对应POSIX访问控制列表。
在一些实施例中,所述基于所述操作将所述客户端所使用的协议对应的访问控制列表转换成通用访问控制列表结构以记录用户权限的步骤,包括:
响应于所述操作为文件创建,则执行以下操作:
在创建子文件或子目录之前,首先判断父目录有没有可继承的通用权限,如果有,则需要计算继承的权限;
响应于客户端使用的协议为所述SMB协议或所述NFS V4协议,则首先查询文件的通用权限,若存在,则按照通用权限的继承规则计算子文件或子目录的生效权限;
若通用权限中存在继承选项,则计算生效到子文件或子目录的权限,设置继承标记,然后构造完整的通用权限数据结构,并传入扩展的ICFS_CREATE接口;ICFS_CREATE接口收到此参数后,以此参数为优先,并存放于文件的扩展属性,同时根据此权限是否作用于当前子文件或子目录使用第一权限转换规则转换为对应的Mode权限;
其中,所述第一权限转换规则包括:
如果该权限继承到当前子文件或子目录,则按照下面权限进行转换;如果该权限仅继承到子文件,且创建的是子目录,则忽略对应的访问控制列表权限转换;
如果“读数据+读属性+读扩展属性+读权限+同步”组合中缺少任何一个,则无r权限;
对子文件,如果“写数追加数据+写属性+写扩展属性+同步”组合中缺少任何一个,则无w权限;
对子目录,如果“写数追加数据+写属性+写扩展属性+删除子文件或子目录+同步”组合中缺少任何一个,则无w权限;
如果“执行+同步”组合中缺少任何一个,则无x权限;
若通用权限不存在继承选项,或者不存在通用权限,则直接按照默认Mode参数创建新的子文件或子目录;
响应于客户端使用的协议为所述NFS V3协议或所述采用POSIX接口的至少一个协议,则首先查询是否存在通用权限,如果通用权限存在则按照访问控制列表查询操作首先转为所述POSIX访问控制列表,然后根据POSIX访问控制列表继承规则创建子文件或子目录,如果通用权限不存在继承选项,或者不存在通用权限,则直接按照默认Mode参数创建新的子文件或子目录。
在一些实施例中,所述基于所述操作将所述客户端所使用的协议对应的访问控制列表转换成通用访问控制列表结构以记录用户权限的步骤,还包括:
响应于所述操作为文件访问控制列表查询,则执行以下操作:
响应于客户端使用的协议为所述SMB协议或所述NFS V4协议,则首先查询文件的通用权限,若存在则直接将通用权限格式转为SMB/NFS V4对应的格式,包括版本号,控制标记,权限掩码位,继承标记位等可以直接转换使用;
若不存在通用权限,则需要从文件的默认Mode使用第二权限转换规则转换过来;
其中,所述第二权限转换规则包括:
对r权限,转换为“读数据+读属性+读扩展属性+读权限+同步”;
对w权限,对目录,转换为“写数追加数据+写属性+写扩展属性
+删除子文件或子目录+同步”;
对子文件,转换为“写数追加数据+写属性+写扩展属性+同步”;
对x权限,转换为“执行+同步”;
如果同时包含rwx,转换为“完全控制”;
对继承转换规则,Mode相当于无继承,直接转为“应用于当前子文件或子目录”;
响应于客户端使用的协议为所述NFS V3协议或所述采用POSIX接口的至少一个协议,判断是否存在通用权限,如果存在通用权限则使用第三权限转换规则从通用权限转为POSIX访问控制列表;
其中,所述第三权限转换规则包括:
将非继承权限转换到Access访问控制列表,将继承权限中作用于当前文件目录的权限也转换到Access访问控制列表;将仅继承的权限转换到Default访问控制列表;
如果是同一个用户的多个Access访问控制列表,则合并到一条Access访问控制列表中去;如果是同一个用户的多个Default访问控制列表,则合并到一条Default访问控制列表中去;
若不存在通用权限,则需要从文件的默认Mode转换到POSIX访问控制列表,其中,Mode转换到POSIX访问控制列表包括rwx转为POSIX访问控制列表中的Access访问控制列表权限,权限位仍为rwx。
在一些实施例中,所述基于所述操作将所述客户端所使用的协议对应的访问控制列表转换成通用访问控制列表结构以记录用户权限的步骤,还包括:
响应于所述操作为文件访问控制列表设置,则执行以下操作:
响应于客户端使用的协议为所述SMB协议或所述NFS V4协议则执行以下操作:
如果客户端发过来的访问控制列表版本号、控制标记、权限掩码位、继承标记位,则按照通用权限的格式进行调整转换;
如果修改了通用权限,则需要同按照创建文件时,通用权限到Mode的转换规则动态修改Mode信息;
响应于客户端使用的协议为所述NFS V3协议或所述采用POSIX接口的至少一个协议则执行以下操作:
如果客户端发过来的是rwx权限格式,此时rwx权限到通用权限的转换过程和文件访问控制列表查询操作的rwx转换规则相同;
如果客户端发过来的是Default访问控制列表权限,则继承标记需要在通用权限结构中转为仅继承标记,用于表示该访问控制列表只对新创建的子文件或子目录生效。
在一些实施例中,所述基于所述操作将所述客户端所使用的协议对应的访问控制列表转换成通用访问控制列表结构以记录用户权限的步骤,包括:
响应于所述操作为文件访问控制列表校验,则在文件访问控制列表查询操作的基础上进行,在校验之前首先将通用权限转为各种协议能够直接识别的访问控制列表格式,然后进行校验环节以执行以下操作:
响应于客户端使用的协议为所述SMB协议或所述NFS V4协议,则遵循权限累加、拒绝优先规则执行校验;
其中,所述权限累加、拒绝优先规则包括:
如果同一个账户主体对多个访问控制列表都适用,则总的允许或拒绝权限是多个访问控制列表权限累加一块的结果;
如果同一个账户主体对某个权限位既有允许权限、又有拒绝权限,
则按照拒绝优先的原则进行处理。
根据本发明的第二方面,提供了一种文件系统中用户权限处理装置,所述装置包括:
定义模块,所述定义模块配置用于在文件系统中定义通用访问控制列表结构;
获取模块,所述获取模块配置用于响应于客户端操作所述文件系统,则获取所述客户端所使用的协议及协议对应的访问控制列表;
转换模块,所述转换模块配置用于基于所述操作将所述客户端所使用的协议对应的访问控制列表转换成通用访问控制列表结构以记录用户权限。
根据本发明的第三方面,还提供了一种电子设备,该电子设备包括:
至少一个处理器;以及
存储器,存储器存储有可在处理器上运行的计算机程序,处理器执行程序时执行前述的文件系统中用户权限处理方法。
根据本发明的第四方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时执行前述的文件系统中用户权限处理方法。
上述一种文件系统中用户权限处理方法,通过在文件系统定义与协议无关的通用访问控制列表结构来保证多种协议之间的相互兼容,在客户端操作文件系统时,基于操作将客户端的协议对应的访问控制列表转换成通用访问控制列表结构,从而实现多种协议之间的完整权限互通。
此外,本发明还提供了一种文件系统中用户权限处理装置、一种电子设备和一种计算机可读存储介质,同样能实现上述技术效果,这里不再赘述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为本发明一个实施例提供的一种文件系统中用户权限处理方法的流程图;
图2为本发明另一个实施例提供的通用权限兼容的整体结构示意图;
图3为本发明另一个实施例提供的一种文件系统中用户权限处理装置的结构示意图;
图4为本发明另一个实施例中电子设备的内部结构图;
图5为本发明另一个实施例中计算机可读存储介质结构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
为了便于理解,首先对本实施例使用的技术属于进行如下说明:
SMB:Server Message Block,一种用于不同网络结点间的共享传输协议。
NFS V3/V4:NFS的两个版本,前者支持POSIX ACL,后者新增支持NFS V4完整ACL。
ICFS:Inspur Cluster File System,浪潮集群文件系统。
访问控制列表(Access Control List)是由一条或多条规则组成的集合。所谓规则,是指描述报文匹配条件的判断语句,这些条件可以是报文的源地址、目的地址、端口号等。ACL本质上是一种报文过滤器,规则是过滤器的滤芯。设备基于这些规则进行报文匹配,可以过滤出特定的报文,并根据应用ACL的业务模块的处理策略来允许或阻止该报文通过。
在一个实施例中,请参照图1所示,本发明提供了一种文件系统中用户权限处理方法100,具体来说,所述方法包括以下步骤:
步骤101,在文件系统中定义通用访问控制列表结构;
步骤102,响应于客户端操作所述文件系统,则获取所述客户端所使用的协议及协议对应的访问控制列表;
步骤103,基于所述操作将所述客户端所使用的协议对应的访问控制列表转换成通用访问控制列表结构以记录用户权限。
上述一种文件系统中用户权限处理方法,通过在文件系统定义与协议无关的通用访问控制列表结构来保证多种协议之间的相互兼容,在客户端操作文件系统时,基于操作将客户端的协议对应的访问控制列表转换成通用访问控制列表结构,从而实现多种协议之间的完整权限互通。
在一些实施例中,所述通用访问控制列表结构包括:访问控制列表的版本号、类型、属主UID、属主GID、DACL中的ACE个数、SACL中的ACE个数、包含继承标记位、权限位、以及对应的账户主体信息的至少一个ACE。
在一些实施例中,所述客户端所使用的协议包括:SMB协议、NFS V4协议、NFS V3协议、采用POSIX接口的至少一个协议,其中,所述SMB协议对应NTFS访问控制列表,所述NFSV4协议对应V4访问控制列表,所述NFS V3协议和采用POSIX接口的至少一个协议对应POSIX访问控制列表。
在一些实施例中,前述步骤103,基于所述操作将所述客户端所使用的协议对应的访问控制列表转换成通用访问控制列表结构以记录用户权限,包括:
响应于所述操作为文件创建,则执行以下操作:
在创建子文件或子目录之前,首先判断父目录有没有可继承的通用权限,如果有,则需要计算继承的权限;
响应于客户端使用的协议为所述SMB协议或所述NFS V4协议,则首先查询文件的通用权限,若存在,则按照通用权限的继承规则计算子文件或子目录的生效权限;
若通用权限中存在继承选项,则计算生效到子文件或子目录的权限,设置继承标记,然后构造完整的通用权限数据结构,并传入扩展的ICFS_CREATE接口;ICFS_CREATE接口收到此参数后,以此参数为优先,并存放于文件的扩展属性,同时根据此权限是否作用于当前子文件或子目录使用第一权限转换规则转换为对应的Mode权限;
其中,所述第一权限转换规则包括:
如果该权限继承到当前子文件或子目录,则按照下面权限进行转换;如果该权限仅继承到子文件,且创建的是子目录,则忽略对应的访问控制列表权限转换;
如果“读数据+读属性+读扩展属性+读权限+同步”组合中缺少任何一个,则无r权限;
对子文件,如果“写数追加数据+写属性+写扩展属性+同步”组合中缺少任何一个,则无w权限;
对子目录,如果“写数追加数据+写属性+写扩展属性+删除子文件或子目录+同步”组合中缺少任何一个,则无w权限;
如果“执行+同步”组合中缺少任何一个,则无x权限;
若通用权限不存在继承选项,或者不存在通用权限,则直接按照默认Mode参数创建新的子文件或子目录;
响应于客户端使用的协议为所述NFS V3协议或所述采用POSIX接口的至少一个协议,则首先查询是否存在通用权限,如果通用权限存在则按照访问控制列表查询操作首先转为所述POSIX访问控制列表,然后根据POSIX访问控制列表继承规则创建子文件或子目录,如果通用权限不存在继承选项,或者不存在通用权限,则直接按照默认Mode参数创建新的子文件或子目录。
本实施例的文件系统中用户权限处理方法,针对文件系统的文件创建操作,为SMB协议、NFS V4协议、NFS V3协议、采用POSIX接口的至少一个协议分别设置了对应的访问控制列表到通用访问控制列表的转换方式,从而保证多种协议按照同一套权限格式去处理文件的创建操作,可以保证同一文件系统集群在同时对接多种上层协议时,创建操作的文件访问权限能够相互识别,从而更高效地进行多协议权限控制。
在一些实施例中,前述步骤103,基于所述操作将所述客户端所使用的协议对应的访问控制列表转换成通用访问控制列表结构以记录用户权限,还包括:
响应于所述操作为文件访问控制列表查询,则执行以下操作:
响应于客户端使用的协议为所述SMB协议或所述NFS V4协议,则首先查询文件的通用权限,若存在则直接将通用权限格式转为SMB/NFS V4对应的格式,包括版本号,控制标记,权限掩码位,继承标记位等可以直接转换使用;
若不存在通用权限,则需要从文件的默认Mode使用第二权限转换规则转换过来;
其中,所述第二权限转换规则包括:
对r权限,转换为“读数据+读属性+读扩展属性+读权限+同步”;
对w权限,对目录,转换为“写数追加数据+写属性+写扩展属性
+删除子文件或子目录+同步”;
对子文件,转换为“写数追加数据+写属性+写扩展属性+同步”;
对x权限,转换为“执行+同步”;
如果同时包含rwx,转换为“完全控制”;
对继承转换规则,Mode相当于无继承,直接转为“应用于当前子文件或子目录”;
响应于客户端使用的协议为所述NFS V3协议或所述采用POSIX接口的至少一个协议,判断是否存在通用权限,如果存在通用权限则使用第三权限转换规则从通用权限转为POSIX访问控制列表;
其中,所述第三权限转换规则包括:
将非继承权限转换到Access访问控制列表,将继承权限中作用于当前文件目录的权限也转换到Access访问控制列表;将仅继承的权限转换到Default访问控制列表;
如果是同一个用户的多个Access访问控制列表,则合并到一条Access访问控制列表中去;如果是同一个用户的多个Default访问控制列表,则合并到一条Default访问控制列表中去;
若不存在通用权限,则需要从文件的默认Mode转换到POSIX访问控制列表,其中,Mode转换到POSIX访问控制列表包括rwx转为POSIX访问控制列表中的Access访问控制列表权限,权限位仍为rwx。
本实施例的文件系统中用户权限处理方法,针对文件系统的文件访问控制列表查询操作,为SMB协议、NFS V4协议、NFS V3协议、采用POSIX接口的至少一个协议分别设置了对应的访问控制列表到通用访问控制列表的转换方式,从而保证多种协议按照同一套权限格式去处理文件的访问控制列表查询时,可以保证同一文件系统集群在同时对接多种上层协议时,使得各个协议下文件访问控制列表查询操作的文件访问权限能够相互识别,从而更高效地进行多协议权限控制。
在一些实施例中,前述步骤103,基于所述操作将所述客户端所使用的协议对应的访问控制列表转换成通用访问控制列表结构以记录用户权限,还包括:
响应于所述操作为文件访问控制列表设置,则执行以下操作:
响应于客户端使用的协议为所述SMB协议或所述NFS V4协议则执行以下操作:
如果客户端发过来的访问控制列表版本号、控制标记、权限掩码位、继承标记位,则按照通用权限的格式进行调整转换;
如果修改了通用权限,则需要同按照创建文件时,通用权限到
Mode的转换规则动态修改Mode信息;
响应于客户端使用的协议为所述NFS V3协议或所述采用POSIX接口的至少一个协议则执行以下操作:
如果客户端发过来的是rwx权限格式,此时rwx权限到通用权限的转换过程和文件访问控制列表查询操作的rwx转换规则相同;
如果客户端发过来的是Default访问控制列表权限,则继承标记需要在通用权限结构中转为仅继承标记,用于表示该访问控制列表只对新创建的子文件或子目录生效。
本实施例的文件系统中用户权限处理方法,针对文件系统的文件访问控制列表设置操作,为SMB协议、NFS V4协议、NFS V3协议、采用POSIX接口的至少一个协议分别设置了对应的访问控制列表到通用访问控制列表的转换方式,从而保证多种协议按照同一套权限格式去处理文件的文件访问控制列表设置时,可以保证同一文件系统集群在同时对接多种上层协议时,使得各个协议下文件访问控制列表设置的文件访问权限能够相互识别,从而更高效地进行多协议权限控制。
在一些实施例中,前述步骤103,基于所述操作将所述客户端所使用的协议对应的访问控制列表转换成通用访问控制列表结构以记录用户权限的步骤,还包括:
响应于所述操作为文件访问控制列表校验,则在文件访问控制列表查询操作的基础上进行,在校验之前首先将通用权限转为各种协议能够直接识别的访问控制列表格式,然后进行校验环节以执行以下操作:
响应于客户端使用的协议为所述SMB协议或所述NFS V4协议,则遵循权限累加、拒绝优先规则执行校验;
其中,所述权限累加、拒绝优先规则包括:
如果同一个账户主体对多个访问控制列表都适用,则总的允许或拒绝权限是多个访问控制列表权限累加一块的结果;
如果同一个账户主体对某个权限位既有允许权限、又有拒绝权限,
则按照拒绝优先的原则进行处理。
本实施例的文件系统中用户权限处理方法,针对文件系统的文件访问控制列表校验操作,为SMB协议、NFS V4协议、NFS V3协议、采用POSIX接口的至少一个协议分别设置了对应的访问控制列表到通用访问控制列表的转换方式,从而保证多种协议按照同一套权限格式去处理文件的文件访问控制列表校验时,可以保证同一文件系统集群在同时对接多种上层协议时,使得各个协议下文件访问控制列表校验的文件访问权限能够相互识别,从而更高效地进行多协议权限控制。
在又一个实施例中,为了便于理解本发明的方案,下面以应用于ICFS系统为例,本实施例提供了又一种文件系统中用户权限处理方法,具体实施方案参考如下:
为实现ICFS文件系统下用户权限对多协议的完整兼容性,本发明从权限定义、权限存储、以及各种常见协议如SMB/NFS V4/NFS V3/POSIX ACL的校验和继承处理上分别进行说明。
NTFS ACL结构从外到内分为三部分,三部分是相互包含关系:
最外层第1部分是一个安全描述符,里面重点描述了ACL的控制标记,用于指定ACL自身的一些特性,如是否允许继承,是否包含DACL等;中间层第2部分是ACL结构,重点描述了ACL版本号,大小;最里层第3部分是包含的ACE信息,用于指定各个权限的用户主体、访问掩码、继承标记。
NFS V4 ACL结构则是直接由下面这样的多条ACE结构组成:
type:flags:principal:permissions
type指定了ACL类型,如允许、拒绝、审核,和NTFS ACL中的ACE flag标记相当;
flags指定了继承标记,组标记;
principal即账户主体,包含普通用户、用户组、以及对应于POSIX ACL UGO的三个特殊用户OWNER@、GROUP@、EVERYONE@;
permissions是具体的权限位,权限位和NTFS ACE的权限位相当。
NFS V3/POSIX ACL采用的都是POSIX ACL概念,分为Access/Default ACL,AccessACL用于指定参与校验的权限,Default ACL用于指定参与继承的权限;
根据各协议的权限结构,定义下面两级权限数据结构:
第一级是ACL信息,请参照表1所示,ACL信息用于描述整个ACL的属性,以及包含的DACL/SACL的个数;
表1第一级的ACL信息表
第二级为ACE结构,请参照表2所示,ACE结构用于表示各个权限的Entry项;
表2第二级的ACE信息表
以上权限最终封装在一个完整的扩展属性里面,对于ICFS文件系统,在元数据属性里面定义一个单独的扩展属性;定义整体结构之后,需要考虑各种协议的权限兼容性,兼容性包括权限转换和校验、权限继承处理。
对SMB NTFS协议,权限转换主要发生在ACL设置和查询流程,设置动作主要是用户在Windows客户端进行文件安全属性的变更时触发;查询动作在Windows客户端查询安全属性、以及创建文件之前的校验流程都需要触发。权限校验发生在SMB创建(或打开)/目录查询/重命名操作过程,其他访问过程如删除、读写都是在创建(或打开)的前提下完成的。
对于权限继承处理,在ICFS文件系统新增扩展ICFS_CREATE接口,支持继承权限位的传入,当上层SMB协议计算出父目录的继承权限之后,直接将计算结果作为扩展ICFS_CREATE接口的入口参数,这样文件的继承和创建动作一次性下发至ICFS文件系统层,减少元数据的交互次数;
对于NFS V4协议,其权限格式和SMB NTFS权限内容接近,因此可以直接和上面统一结构定义相互兼容,主要不同就是权限位的分布位置不同,在转换和查询时,和统一权限位进行一个BIT位的转换即可。
对于POSIX ACL/NFS V3权限,其权限结构可以视作是通用权限结构的一种特殊情况,由NFS V3单独进行转换;转换过程包括权限位、继承标记位、以及权限掩码的合并转换等。
权限位转换主要是rwx三个权限和通用权限位的转换,继承标记位主要是通用权限的继承标记映射为POSIX Default ACL中的单一类型的继承,权限掩码的合并主要是将通用权限中同一账户主体的多条权限合并为POSIX ACL中的单一权限。
根据以上定义规则,请参照图2示出的通用权限兼容的整体结构示意图,每种协议需要按照自己的转换规则和通用权限进行相互转换。
下面将按照通用权限的定义格式和各协议兼容处理的过程介绍各个部分的详细处理步骤:
首先是文件创建流程,包含了不同协议客户端对Mode、通用权限的处理;
步骤一,创建子文件(子目录)之前,首先判断父目录有没有可继承的通用权限,如果有,则需要计算继承的权限;
步骤二:如果是SMB/NFS V4应用端,则首先查询文件的通用权限,若存在,则按照通用权限的继承规则计算子文件(子目录)的生效权限;
若通用权限中存在继承选项,则计算生效到子文件(子目录)的权限,设置继承标记,然后构造完整的通用权限数据结构,并传入扩展的ICFS_CREATE接口;ICFS_CREATE接口收到此参数后,以此参数为优先,并存放于文件的扩展属性,同时根据此权限是否作用于当前子文件(子目录)转换为对应的Mode权限,权限转换规则:
a.如果该权限继承到当前子文件(子目录),则按照下面权限进行转换;如果该权限仅继承到子文件,且创建的是子目录,则忽略对应的ACL权限转换;
b.“读数据+读属性+读扩展属性+读权限+同步”组合中缺少任何一个,则无r权限;
c.对子文件,“写数追加数据+写属性+写扩展属性+同步”组合中缺少任何一个,则无w权限;
对子目录,“写数追加数据+写属性+写扩展属性+删除子文件(子目录)+同步”组合中缺少任何一个,则无w权限;
d.“执行+同步”组合中缺少任何一个,则无x权限;
若通用权限不存在继承选项,或者不存在通用权限,则直接按照默认Mode参数创建新的子文件(子目录);
步骤三:如果是NFS V3/POSIX ACL应用端,则首先查询是否存在通用权限,如果存在,则按照下面的ACL查询流程首先转为POSIX ACL,然后根据POSIX ACL继承规则创建子文件(子目录);若通用权限不存在继承选项,或者不存在通用权限,同样是直接按照默认Mode参数创建新的子文件(子目录)。
其次是文件ACL查询流程,包含如下几个步骤:
步骤一:如果是SMB/NFS V4应用端,则首先查询文件的通用权限,若存在则直接将通用权限格式转为SMB/NFS V4对应的格式,包括版本号,控制标记,权限掩码位,继承标记位等可以直接转换使用;
若不存在通用权限,则需要从文件的默认Mode转换过来,权限转换规则:
r:转换为“读数据+读属性+读扩展属性+读权限+同步”;
w:对目录,转换为“写数追加数据+写属性+写扩展属性+删除子文件(子目录)+同步”;
对文件,转换为“写数追加数据+写属性+写扩展属性+同步”;
x:转换为“执行+同步”;
同时包含rwx:转换为“完全控制”;
继承转换规则:Mode相当于无继承,直接转为“应用于当前文件(目录)”;
步骤二:如果是NFS V3/POSIX ACL应用端,同样是判断存在通用权限,则从通用权限转为POSIX ACL,权限转换规则:
a.将非继承权限转换到Access ACL,将继承权限中作用于当前文件目录的权限也转换到Access ACL;将仅继承的权限转换到Default ACL;
b.如果是同一个用户的多个Access ACL,则合并到一条Access ACL中去;如果是同一个用户的多个Default ACL,则合并到一条Default ACL中去;
若不存在通用权限,则需要从文件的默认Mode转换过来,Mode到POSIX ACL转换规则相对简单,只需要rwx转为POSIX ACL中的Access ACL权限即可,权限位仍为rwx。
最后是文件ACL设置流程,包含如下几个步骤:
步骤一:对于SMB/NFS V4应用端,将客户端发过来的ACL版本号,控制标记,权限掩码位,继承标记位按照通用权限的格式进行调整转换,即可按照通用权限格式进行保存;
如果是修改了通用权限,需要同按照创建文件时,通用权限到Mode的转换规则动态修改Mode信息;
步骤二:对于NFS V3/POSIX ACL应用端,客户端发过来的是rwx权限格式,此时rwx权限到通用权限的转换过程和文件ACL查询流程的rwx转换规则相同;
如果客户端发过来的同时有Default ACL权限,则继承标记需要在通用权限结构中转为仅继承标记,用于表示该条ACL只对新创建的子文件(子目录)生效。
对于文件ACL校验流程,则是在文件ACL查询流程的基础上进行,在校验之前,首先按照上述规则将通用权限转为各种协议能够直接识别的ACL格式,然后进行校验环节即可;对于SMB/NFS V4,校验流程符合权限累加、拒绝优先规则;即如果同一个账户主体对多个ACL都适用,则总的允许或拒绝权限是多个ACL权限累加一块的结果;如果同一个账户主体对某个权限位既有允许权限,又有拒绝权限,则按照拒绝优先的原则进行处理。
本实施例的文件系统中用户权限处理方法,具备以下有益技术效果:针对SMB/NFSV4/NFS V3/POSIX ACL的权限格式在ICFS文件系统中定义一种通用的权限格式,并对每种协议在处理ACL查询、设置、校验、继承时和通用权限的相互转换规则分别进行了说明,从而保证多种协议按照同一套权限格式去处理文件操作,借助通用的权限存储方案,可以保证同一套ICFS文件系统集群在同时对接多种上层协议时,文件访问权限能够相互识别,从而更高效地进行多协议权限控制。
在一些实施例中,请参照图3所示,本发明还提供了一种文件系统中用户权限处理装置200,所述装置包括:
定义模块201,所述定义模块201配置用于在文件系统中定义通用访问控制列表结构;
获取模块202,所述获取模块202配置用于响应于客户端操作所述文件系统,则获取所述客户端所使用的协议及协议对应的访问控制列表;
转换模块203,所述转换模块203配置用于基于所述操作将所述客户端所使用的协议对应的访问控制列表转换成通用访问控制列表结构以记录用户权限。
上述一种文件系统中用户权限处理装置,通过在文件系统定义与协议无关的通用访问控制列表结构来保证多种协议之间的相互兼容,在客户端操作文件系统时,基于操作将客户端的协议对应的访问控制列表转换成通用访问控制列表结构,从而实现多种协议之间的完整权限互通。
需要说明的是,关于文件系统中用户权限处理装置的具体限定可以参见上文中对文件系统中用户权限处理方法的限定,在此不再赘述。上述文件系统中用户权限处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于电子设备中的处理器中,也可以以软件形式存储于电子设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
根据本发明的另一方面,提供了一种电子设备,该电子设备可以是服务器,其内部结构图请参照图4所示。该电子设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该电子设备的处理器用于提供计算和控制能力。该电子设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该电子设备的数据库用于存储数据。该电子设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时实现以上所述的文件系统中用户权限处理方法,具体来说,所述方法包括以下步骤:
在文件系统中定义通用访问控制列表结构;
响应于客户端操作所述文件系统,则获取所述客户端所使用的协议及协议对应的访问控制列表;
基于所述操作将所述客户端所使用的协议对应的访问控制列表转换成通用访问控制列表结构以记录用户权限。
根据本发明的又一方面,提供了一种计算机可读存储介质,请参照图5所示,其上存储有计算机程序,计算机程序被处理器执行时实现以上所述的文件系统中用户权限处理方法,具体来说,包括执行以下步骤:
在文件系统中定义通用访问控制列表结构;
响应于客户端操作所述文件系统,则获取所述客户端所使用的协议及协议对应的访问控制列表;
基于所述操作将所述客户端所使用的协议对应的访问控制列表转换成通用访问控制列表结构以记录用户权限。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种文件系统中用户权限处理方法,其特征在于,所述方法包括:
在文件系统中定义通用访问控制列表结构;
响应于客户端操作所述文件系统,则获取所述客户端所使用的协议及协议对应的访问控制列表;
基于所述操作将所述客户端所使用的协议对应的访问控制列表转换成通用访问控制列表结构以记录用户权限。
2.根据权利要求1所述的文件系统中用户权限处理方法,其特征在于,所述通用访问控制列表结构包括:访问控制列表的版本号、类型、属主UID、属主GID、DACL中的ACE个数、SACL中的ACE个数、包含继承标记位、权限位、以及对应的账户主体信息的至少一个ACE。
3.根据权利要求2所述的文件系统中用户权限处理方法,其特征在于,所述客户端所使用的协议包括:SMB协议、NFS V4协议、NFS V3协议、采用POSIX接口的至少一个协议,其中,所述SMB协议对应NTFS访问控制列表,所述NFS V4协议对应V4访问控制列表,所述NFS V3协议和采用POSIX接口的至少一个协议对应POSIX访问控制列表。
4.根据权利要求3所述的文件系统中用户权限处理方法,其特征在于,所述基于所述操作将所述客户端所使用的协议对应的访问控制列表转换成通用访问控制列表结构以记录用户权限的步骤,包括:
响应于所述操作为文件创建,则执行以下操作:
在创建子文件或子目录之前,首先判断父目录有没有可继承的通用权限,如果有,则需要计算继承的权限;
响应于客户端使用的协议为所述SMB协议或所述NFS V4协议,则首先查询文件的通用权限,若存在,则按照通用权限的继承规则计算子文件或子目录的生效权限;
若通用权限中存在继承选项,则计算生效到子文件或子目录的权限,设置继承标记,然后构造完整的通用权限数据结构,并传入扩展的ICFS_CREATE接口;ICFS_CREATE接口收到此参数后,以此参数为优先,并存放于文件的扩展属性,同时根据此权限是否作用于当前子文件或子目录使用第一权限转换规则转换为对应的Mode权限;
其中,所述第一权限转换规则包括:
如果该权限继承到当前子文件或子目录,则按照下面权限进行转换;如果该权限仅继承到子文件,且创建的是子目录,则忽略对应的访问控制列表权限转换;
如果“读数据+读属性+读扩展属性+读权限+同步”组合中缺少任何一个,则无r权限;
对子文件,如果“写数追加数据+写属性+写扩展属性+同步”组合中缺少任何一个,则无w权限;
对子目录,如果“写数追加数据+写属性+写扩展属性+删除子文件或子目录+同步”组合中缺少任何一个,则无w权限;
如果“执行+同步”组合中缺少任何一个,则无x权限;
若通用权限不存在继承选项,或者不存在通用权限,则直接按照默认Mode参数创建新的子文件或子目录;
响应于客户端使用的协议为所述NFS V3协议或所述采用POSIX接口的至少一个协议,则首先查询是否存在通用权限,如果通用权限存在则按照访问控制列表查询操作首先转为所述POSIX访问控制列表,然后根据POSIX访问控制列表继承规则创建子文件或子目录,如果通用权限不存在继承选项,或者不存在通用权限,则直接按照默认Mode参数创建新的子文件或子目录。
5.根据权利要求4所述的文件系统中用户权限处理方法,其特征在于,所述基于所述操作将所述客户端所使用的协议对应的访问控制列表转换成通用访问控制列表结构以记录用户权限的步骤,还包括:
响应于所述操作为文件访问控制列表查询,则执行以下操作:
响应于客户端使用的协议为所述SMB协议或所述NFS V4协议,则首先查询文件的通用权限,若存在则直接将通用权限格式转为SMB/NFS V4对应的格式,包括版本号,控制标记,权限掩码位,继承标记位可以直接转换使用;
若不存在通用权限,则需要从文件的默认Mode使用第二权限转换规则转换过来;
其中,所述第二权限转换规则包括:
对r权限,转换为“读数据+读属性+读扩展属性+读权限+同步”;
对w权限,对目录,转换为“写数追加数据+写属性+写扩展属性+删除子文件或子目录+同步”;
对子文件,转换为“写数追加数据+写属性+写扩展属性+同步”;
对x权限,转换为“执行+同步”;
如果同时包含rwx,转换为“完全控制”;
对继承转换规则,Mode相当于无继承,直接转为“应用于当前子文件或子目录”;
响应于客户端使用的协议为所述NFS V3协议或所述采用POSIX接口的至少一个协议,判断是否存在通用权限,如果存在通用权限则使用第三权限转换规则从通用权限转为POSIX访问控制列表;
其中,所述第三权限转换规则包括:
将非继承权限转换到Access访问控制列表,将继承权限中作用于当前文件目录的权限也转换到Access访问控制列表;将仅继承的权限转换到Default访问控制列表;
如果是同一个用户的多个Access访问控制列表,则合并到一条Access访问控制列表中去;如果是同一个用户的多个Default访问控制列表,则合并到一条Default访问控制列表中去;
若不存在通用权限,则需要从文件的默认Mode转换到POSIX访问控制列表,其中,Mode转换到POSIX访问控制列表包括rwx转为POSIX访问控制列表中的Access访问控制列表权限,权限位仍为rwx。
6.根据权利要求5所述的文件系统中用户权限处理方法,其特征在于,所述基于所述操作将所述客户端所使用的协议对应的访问控制列表转换成通用访问控制列表结构以记录用户权限的步骤,还包括:
响应于所述操作为文件访问控制列表设置,则执行以下操作:
响应于客户端使用的协议为所述SMB协议或所述NFS V4协议则执行以下操作:
如果客户端发过来的访问控制列表版本号、控制标记、权限掩码位、继承标记位,则按照通用权限的格式进行调整转换;
如果修改了通用权限,则需要同按照创建文件时,通用权限到Mode的转换规则动态修改Mode信息;
响应于客户端使用的协议为所述NFS V3协议或所述采用POSIX接口的至少一个协议则执行以下操作:
如果客户端发过来的是rwx权限格式,此时rwx权限到通用权限的转换过程和文件访问控制列表查询操作的rwx转换规则相同;
如果客户端发过来的是Default访问控制列表权限,则继承标记需要在通用权限结构中转为仅继承标记,用于表示该访问控制列表只对新创建的子文件或子目录生效。
7.根据权利要求5所述的文件系统中用户权限处理方法,其特征在于,所述基于所述操作将所述客户端所使用的协议对应的访问控制列表转换成通用访问控制列表结构以记录用户权限的步骤,包括:
响应于所述操作为文件访问控制列表校验,则在文件访问控制列表查询操作的基础上进行,在校验之前首先将通用权限转为各种协议能够直接识别的访问控制列表格式,然后进行校验环节以执行以下操作:
响应于客户端使用的协议为所述SMB协议或所述NFS V4协议,则遵循权限累加、拒绝优先规则执行校验;
其中,所述权限累加、拒绝优先规则包括:
如果同一个账户主体对多个访问控制列表都适用,则总的允许或拒绝权限是多个访问控制列表权限累加一块的结果;
如果同一个账户主体对某个权限位既有允许权限、又有拒绝权限,则按照拒绝优先的原则进行处理。
8.一种文件系统中用户权限处理装置,其特征在于,所述装置包括:
定义模块,所述定义模块配置用于在文件系统中定义通用访问控制列表结构;
获取模块,所述获取模块配置用于响应于客户端操作所述文件系统,则获取所述客户端所使用的协议及协议对应的访问控制列表;
转换模块,所述转换模块配置用于基于所述操作将所述客户端所使用的协议对应的访问控制列表转换成通用访问控制列表结构以记录用户权限。
9.一种电子设备,其特征在于,包括:
至少一个处理器;以及
存储器,所述存储器存储有可在所述处理器中运行的计算机程序,所述处理器执行所述程序时执行权利要求1-7任意一项所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时执行权利要求1-7任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311230162.XA CN117194332A (zh) | 2023-09-22 | 2023-09-22 | 一种文件系统中用户权限处理方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311230162.XA CN117194332A (zh) | 2023-09-22 | 2023-09-22 | 一种文件系统中用户权限处理方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117194332A true CN117194332A (zh) | 2023-12-08 |
Family
ID=88994131
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311230162.XA Pending CN117194332A (zh) | 2023-09-22 | 2023-09-22 | 一种文件系统中用户权限处理方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117194332A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118035985A (zh) * | 2024-04-11 | 2024-05-14 | 深圳市中壬银兴信息技术有限公司 | 一种基于数据模块化的mis系统 |
-
2023
- 2023-09-22 CN CN202311230162.XA patent/CN117194332A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118035985A (zh) * | 2024-04-11 | 2024-05-14 | 深圳市中壬银兴信息技术有限公司 | 一种基于数据模块化的mis系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11768810B2 (en) | Flexible permission management framework for cloud attached file systems | |
CN108696496B (zh) | 多协议访问控制方法及存储系统 | |
CN111198848B (zh) | 一种分布式文件访问方法、系统、服务器和存储介质 | |
US20230092106A1 (en) | System and method for logical deletion of stored data objects | |
EP1696330B1 (en) | Discoverability and enumeration mechanisms in a hierarchically secure storage system | |
US9336406B2 (en) | Multiprotocol access control list with guaranteed protocol compliance | |
US6381602B1 (en) | Enforcing access control on resources at a location other than the source location | |
US8549326B2 (en) | Method and system for extending encrypting file system | |
CN108900483B (zh) | 云存储细粒度访问控制方法、数据上传和数据访问方法 | |
CN109936571B (zh) | 一种海量数据共享方法、开放共享平台及电子设备 | |
US10127401B2 (en) | Redacting restricted content in files | |
US11151261B2 (en) | Blockchain system with severable data and cryptographic proof | |
US20090049047A1 (en) | Storing custom metadata using custom access control entries | |
EP3866041B1 (en) | Secure group file sharing | |
US10148637B2 (en) | Secure authentication to provide mobile access to shared network resources | |
US6895512B1 (en) | Methods and systems for synchronizing security descriptors in systems that use multiple security descriptor specifications | |
CN117194332A (zh) | 一种文件系统中用户权限处理方法、装置、设备及介质 | |
US12019762B2 (en) | Blockchain system with severable data and cryptographic proof | |
CN114095257B (zh) | 安全策略调整方法、装置、通信设备和存储介质 | |
CN115934671B (zh) | 一种访问控制列表的处理方法、装置、设备及存储介质 | |
US11868494B1 (en) | Synchronization of access management tags between databases | |
US8266118B2 (en) | Automated access policy translation | |
CN116910746A (zh) | 租户隔离与租户配额管理的方法、系统、设备和存储介质 | |
WO2018176175A1 (zh) | 一种提供可信任的文档更新方法 | |
CN114064566A (zh) | 一种文件归档方法、系统、存储介质及设备 |
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 |