有效
多用户级目录的访问控制方法、装置、设备及存储介质
孟德伟、徐宁、李宇哲、章轶
北京长擎量子技术有限公司
孟
孟德伟机构 暂无
技术领域 暂无
徐
徐宁机构 暂无
技术领域 暂无
李
李宇哲机构 暂无
技术领域 暂无
章
章轶机构 暂无
技术领域 暂无
摘要
本发明涉及访问控制技术领域,特别涉及一种多用户级目录的访问控制方法、装置、设备及存储介质。方法包括:当接收到操作用户的打开目标文件的第一访问指令时,调用第一访问控制钩子;第一访问控制钩子查询目标文件所在目录的安全策略,并调用文件代理对象创建接口,以利用文件代理对象创建接口生成目标文件代理对象,然后将目标文件代理对象返回给操作用户;针对接收到的第二访问指令,均执行:基于当前第二访问指令中的操作目标,调用第二访问控制钩子;第二访问控制钩子基于目标文件代理对象和当前第二访问指令中的访问信息,执行该第二访问控制钩子的设定操作。本方案,可以实现多用户同一文件数据的安全隔离,保证多用户之间数据的隐私性。
1.一种多用户级目录的访问控制方法,其特征在于,包括:当接收到操作用户的打开目标文件的第一访问指令时,调用第一访问控制钩子;其中,所述第一访问控制钩子的操作目标为打开目标文件;所述第一访问控制钩子查询所述目标文件所在目录的安全策略;当获取到所述安全策略时,所述第一访问控制钩子调用文件代理对象创建接口,以利用所述文件代理对象创建接口基于所述安全策略从目录副本中查询所述目标文件,以此生成目标文件代理对象,然后将所述目标文件代理对象返回给所述操作用户;其中,所述目录副本存储有每个用户在该目录的私有文件,所述安全策略含有当前目录的用户共享规则;针对接收到的每一个第二访问指令,均执行:基于当前第二访问指令中的操作目标,调用第二访问控制钩子;其中,所述第二访问控制钩子的操作目标至少包括关闭目标文件、读取目标文件、写目标文件、目标文件删除;所述第二访问指令包括操作目标和访问信息;所述第二访问控制钩子基于所述目标文件代理对象和当前第二访问指令中的访问信息,执行该第二访问控制钩子的设定操作;所述安全策略包括第一用户名和基础操作符;其中,所述基础操作符包括共享操作、共享于操作、共享所有用户操作和共享给所有用户操作;当所述基础操作符为所述共享操作和所述共享于操作时,所述安全策略还包括一个第二用户名,且所述第二用户名位于所述基础操作符之后;当所述基础操作符为所述共享所有用户操作和所述共享给所有用户操作时,所述安全策略还包括“expect”操作和至少一个第三用户名,且所述“expect”操作和至少一个第三用户名依次位于所述基础操作符之后;所述文件代理对象创建接口是通过如下方式生成目标文件代理对象的:基于所述目标文件的名称,创建一个初始的目标文件代理对象;在所述操作用户的私有文件中查询是否含有所述目标文件;若有,则将所述目标文件的实体文件信息填入临时链表的节点中,并遍历所述安全策略,以查找共享给所述操作用户的其他用户的私有文件中的所述目标文件,并将查找到的所述目标文件的实体文件信息依次填入所述临时链表的节点中;其中,所述实体文件信息至少包括存储位置、长度、创建时间、访问时间、用户属主和用户数组;若没有,则直接遍历所述安全策略,以查找共享给所述操作用户的其他用户的私有文件中的所述目标文件,并将查找到的所述目标文件的实体文件信息填入所述临时链表的节点中;判断所述临时链表中的每一个节点是否为空;若均为空,则销毁初始的目标文件代理对象,目标文件代理对象创建失败;若不都为空,则将所述临时链表中不为空的节点存储的实体文件信息依次填充到初始的目标文件代理对象的链表中,然后计算并存储填充的每一个目标文件的长度,生成目标文件代理对象。
2.根据权利要求1所述的方法,其特征在于,当所述第二访问控制钩子的操作目标为关闭目标文件时,所述第二访问控制钩子基于所述目标文件代理对象和当前第二访问指令中的访问信息,执行该第二访问控制钩子的设定操作,包括:所述第二访问控制钩子获取所述第二访问指令中的访问信息;其中,该第二访问指令中的访问信息包括目标文件的名称;基于所述目标文件的名称,获取所述目标文件代理对象;遍历所述目标文件代理对象的链表中的每一个节点,以基于所述实体文件信息释放对应的资源,直至释放所述目标文件代理对象。
3.根据权利要求1所述的方法,其特征在于,当所述第二访问控制钩子的操作目标为读取目标文件时,所述第二访问控制钩子基于所述目标文件代理对象和当前第二访问指令中的访问信息,执行该第二访问控制钩子的设定操作,包括:所述第二访问控制钩子获取所述第二访问指令中的访问信息;其中,该第二访问指令中的访问信息包括目标文件的名称、链表的初始读偏移、目标文件的读偏移和目标读长度;基于所述目标文件的名称,获取所述目标文件代理对象;基于链表的初始读偏移,确定第一个实体文件信息,以基于所述实体文件信息,获取第一个目标文件;基于目标文件的读偏移和当前目标读长度,读取当前目标文件的数据;判断当前目标读长度是否大于当前目标文件的长度与目标文件的读偏移的差值;若大于,则增加链表的读偏移,以基于增加后的链表的读偏移,获取链表中的下一个目标文件,且将当前目标读长度与所述差值的差作为新的目标读长度,以跳转执行所述基于目标文件的读偏移和当前目标读长度,读取当前目标文件的数据;若不大于,则将读取的所有数据返回给所述操作用户。
4.根据权利要求1所述的方法,其特征在于,当所述第二访问控制钩子的操作目标为写目标文件时,所述第二访问控制钩子基于所述目标文件代理对象和当前第二访问指令中的访问信息,执行该第二访问控制钩子的设定操作,包括:所述第二访问控制钩子获取所述第二访问指令中的访问信息;其中,该第二访问指令中的访问信息包括目标文件的名称、链表的初始写偏移、目标文件的写偏移和目标写长度;基于所述目标文件的名称,获取所述目标文件代理对象;基于链表的初始写偏移,确定第一个实体文件信息,以基于所述实体文件信息,获取第一个目标文件;基于目标文件的写偏移和当前目标写长度,在当前目标文件中写入数据;判断当前目标写长度是否大于在当前目标文件中写入数据的实际长度;若大于,则增加链表的写偏移,以基于增加后的链表的写偏移,获取链表中的下一个目标文件,且将当前目标写长度与在当前目标文件中写入数据的实际长度的差值作为新的目标写长度,以跳转执行所述基于目标文件的写偏移和当前目标写长度,在当前目标文件中写入数据,直至新的目标写长度小于等于在获取的新的目标文件中写入数据的实际长度为止。
5.根据权利要求1-4中任一项所述的方法,其特征在于,还包括:当接收到操作用户的目标目录浏览的控制指令时,调用第三访问控制钩子;所述第三访问控制钩子的操作目标为目标目录浏览;所述第三访问控制钩子获取目标目录的安全策略,以确定所述安全策略中共享给所述操作用户的每一个其他用户名;遍历所述操作用户和共享给所述操作用户的每一个其他用户的目录副本,过滤掉不同用户的目录副本下的同名文件,得到所述操作用户在目标目录中有访问权限的文件列表;将所述文件列表返回给所述操作用户。
6.一种多用户级目录的访问控制装置,其特征在于,包括:第一接收单元,用于当接收到操作用户的打开目标文件的第一访问指令时,调用第一访问控制钩子;其中,所述第一访问控制钩子的操作目标为打开目标文件;查询单元,所述第一访问控制钩子查询所述目标文件所在目录的安全策略;创建单元,用于当获取到所述安全策略时,所述第一访问控制钩子调用文件代理对象创建接口,以利用所述文件代理对象创建接口基于所述安全策略从目录副本中查询所述目标文件,以此生成目标文件代理对象,然后将所述目标文件代理对象返回给所述操作用户;其中,所述目录副本存储有每个用户在该目录的私有文件,所述安全策略含有当前目录的用户共享规则;第二接收单元,用于针对接收到的每一个第二访问指令,均执行:基于当前第二访问指令中的操作目标,调用第二访问控制钩子;其中,所述第二访问控制钩子的操作目标至少包括关闭目标文件、读取目标文件、写目标文件、目标文件删除;所述第二访问指令包括操作目标和访问信息;执行单元,所述第二访问控制钩子基于所述目标文件代理对象和当前第二访问指令中的访问信息,执行该第二访问控制钩子的设定操作;所述查询单元中安全策略包括第一用户名和基础操作符;其中,基础操作符包括共享操作、共享于操作、共享所有用户操作和共享给所有用户操作;当基础操作符为共享操作和共享于操作时,安全策略还包括一个第二用户名,且第二用户名位于基础操作符之后;当基础操作符为共享所有用户操作和共享给所有用户操作时,安全策略还包括“expect”操作和至少一个第三用户名,且“expect”操作和至少一个第三用户名依次位于基础操作符之后;所述创建单元中文件代理对象创建接口是通过如下方式生成目标文件代理对象的:基于目标文件的名称,创建一个初始的目标文件代理对象;在操作用户的私有文件中查询是否含有目标文件;若有,则将目标文件的实体文件信息填入临时链表的节点中,并遍历安全策略,以查找共享给操作用户的其他用户的私有文件中的目标文件,并将查找到的目标文件的实体文件信息依次填入临时链表的节点中;其中,所述实体文件信息至少包括存储位置、长度、创建时间、访问时间、用户属主和用户数组;若没有,则直接遍历安全策略,以查找共享给操作用户的其他用户的私有文件中的目标文件,并将查找到的目标文件的实体文件信息填入临时链表的节点中;判断临时链表中的每一个节点是否为空;若均为空,则销毁初始的目标文件代理对象,目标文件代理对象创建失败;若不都为空,则将临时链表中不为空的节点存储的实体文件信息依次填充到初始的目标文件代理对象的链表中,然后计算并存储填充的每一个目标文件的长度,生成目标文件代理对象。
7.一种计算设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时,实现如权利要求1-5中任一项所述的方法。
8.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-5中任一项所述的方法。



