CN116663042A - 多用户级目录的访问控制方法、装置、设备及存储介质 - Google Patents

多用户级目录的访问控制方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN116663042A
CN116663042A CN202310953127.4A CN202310953127A CN116663042A CN 116663042 A CN116663042 A CN 116663042A CN 202310953127 A CN202310953127 A CN 202310953127A CN 116663042 A CN116663042 A CN 116663042A
Authority
CN
China
Prior art keywords
target
target file
file
user
access control
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
Application number
CN202310953127.4A
Other languages
English (en)
Other versions
CN116663042B (zh
Inventor
孟德伟
徐宁
李宇哲
章轶
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Changqing Software Co ltd
Original Assignee
Beijing Changyang Software Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Changyang Software Co ltd filed Critical Beijing Changyang Software Co ltd
Priority to CN202310953127.4A priority Critical patent/CN116663042B/zh
Publication of CN116663042A publication Critical patent/CN116663042A/zh
Application granted granted Critical
Publication of CN116663042B publication Critical patent/CN116663042B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及访问控制技术领域,特别涉及一种多用户级目录的访问控制方法、装置、设备及存储介质。方法包括:当接收到操作用户的打开目标文件的第一访问指令时,调用第一访问控制钩子;第一访问控制钩子查询目标文件所在目录的安全策略,并调用文件代理对象创建接口,以利用文件代理对象创建接口生成目标文件代理对象,然后将目标文件代理对象返回给操作用户;针对接收到的第二访问指令,均执行:基于当前第二访问指令中的操作目标,调用第二访问控制钩子;第二访问控制钩子基于目标文件代理对象和当前第二访问指令中的访问信息,执行该第二访问控制钩子的设定操作。本方案,可以实现多用户同一文件数据的安全隔离,保证多用户之间数据的隐私性。

Description

多用户级目录的访问控制方法、装置、设备及存储介质
技术领域
本发明实施例涉及访问控制技术领域,特别涉及一种多用户级目录的访问控制方法、装置、设备及存储介质。
背景技术
在操作系统中,通常使用自主访问控制方法和强制访问控制方法来控制主体对文件的访问。首先,在访问文件之前,需要判断主体是否有权限访问文件,得到访问授权后主体方可访问到文件,但是对于这两种访问控制机制,都存在的缺点是授权只是根据授权策略允许或者拒绝主体对文件的访问,而不支持多用户层级间的文件数据内容隔离机制,使得用户一旦获取到文件的访问权限,便可以获取到文件中的所有数据内容,故而,现有的访问控制方法的灵活性和保密性都比较差。
因此,亟需一种多用户级目录的访问控制方法。
发明内容
为了解决现有的访问控制方法的灵活性和保密性都比较差的问题,本发明实施例提供了一种多用户级目录的访问控制方法、装置、设备及存储介质。
第一方面,本发明实施例提供了一种多用户级目录的访问控制方法,方法包括:
当接收到操作用户的打开目标文件的第一访问指令时,调用第一访问控制钩子;其中,所述第一访问控制钩子的操作目标为打开目标文件;
所述第一访问控制钩子查询所述目标文件所在目录的安全策略;
当获取到所述安全策略时,所述第一访问控制钩子调用文件代理对象创建接口,以利用所述文件代理对象创建接口基于所述安全策略从目录副本中查询所述目标文件,以此生成目标文件代理对象,然后将所述目标文件代理对象返回给所述操作用户;其中,所述目录副本存储有每个用户在该目录的私有文件,所述安全策略含有当前目录的用户共享规则;
针对接收到的每一个第二访问指令,均执行:
基于当前第二访问指令中的操作目标,调用第二访问控制钩子;其中,所述第二访问控制钩子的操作目标至少包括关闭目标文件、读取目标文件、写目标文件、目标文件删除;所述第二访问指令包括操作目标和访问信息;
所述第二访问控制钩子基于所述目标文件代理对象和当前第二访问指令中的访问信息,执行该第二访问控制钩子的设定操作。
第二方面,本发明实施例还提供了一种多用户级目录的访问控制装置,装置包括:
第一接收单元,用于当接收到操作用户的打开目标文件的第一访问指令时,调用第一访问控制钩子;其中,所述第一访问控制钩子的操作目标为打开目标文件;
查询单元,所述第一访问控制钩子查询所述目标文件所在目录的安全策略;
创建单元,用于当获取到所述安全策略时,所述第一访问控制钩子调用文件代理对象创建接口,以利用所述文件代理对象创建接口基于所述安全策略从目录副本中查询所述目标文件,以此生成目标文件代理对象,然后将所述目标文件代理对象返回给所述操作用户;其中,所述目录副本存储有每个用户在该目录的私有文件,所述安全策略含有当前目录的用户共享规则;
第二接收单元,用于针对接收到的每一个第二访问指令,均执行:基于当前第二访问指令中的操作目标,调用第二访问控制钩子;其中,所述第二访问控制钩子的操作目标至少包括关闭目标文件、读取目标文件、写目标文件、目标文件删除;所述第二访问指令包括操作目标和访问信息;
执行单元,所述第二访问控制钩子基于所述目标文件代理对象和当前第二访问指令中的访问信息,执行该第二访问控制钩子的设定操作。
第三方面,本发明实施例还提供了一种计算设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时,实现本说明书任一实施例所述的方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行本说明书任一实施例所述的方法。
本发明实施例提供了一种多用户级目录的访问控制方法、装置、设备及存储介质,首先,当接收到操作用户的打开目标文件的第一访问指令时,调用第一访问控制钩子;那么,第一访问控制钩子就会查询目标文件所在目录的安全策略,在安全策略中含有当前目录的用户共享规则;那么,当获取到安全策略时,第一访问控制钩子就会调用文件代理对象创建接口,以利用文件代理对象创建接口基于安全策略从目录副本中查询操作用户可以查看操作的所有目标文件的合并内容,以此生成目标文件代理对象,然后将目标文件代理对象返回给所述操作用户;需要注意的是,目录副本存储有每个用户在该目录的私有文件,操作用户根据安全策略可以查看的合并内容为多个用户副本中目标文件的合并对象;接下来,针对接收到的每一个第二访问指令,均执行:基于当前第二访问指令中的操作目标,调用第二访问控制钩子;其中,第二访问控制钩子的操作目标至少包括关闭目标文件、读取目标文件、写目标文件、目标文件删除;且第二访问指令包括操作目标和访问信息;那么,第二访问控制钩子基于目标文件代理对象和当前第二访问指令中的访问信息,可以执行该第二访问控制钩子的设定操作。因此,本方案能够根据多用户级目录的安全策略,实现多用户的同一文件数据的安全隔离,保证多用户之间数据的隐私性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的一种多用户级目录的访问控制方法的流程图;
图2是本发明一实施例提供的一种计算设备的硬件架构图;
图3是本发明一实施例提供的一种多用户级目录的访问控制装置结构图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面描述以上构思的具体实现方式。
请参考图1,本发明实施例提供了一种多用户级目录的访问控制方法,该方法包括:
步骤100,当接收到操作用户的打开目标文件的第一访问指令时,调用第一访问控制钩子;其中,第一访问控制钩子的操作目标为打开目标文件;
步骤102,第一访问控制钩子查询目标文件所在目录的安全策略;
步骤104,当获取到安全策略时,第一访问控制钩子调用文件代理对象创建接口,以利用文件代理对象创建接口基于安全策略从目录副本中查询目标文件,以此生成目标文件代理对象,然后将目标文件代理对象返回给操作用户;其中,目录副本存储有每个用户在该目录的私有文件,安全策略含有当前目录的用户共享规则;
步骤106,针对接收到的每一个第二访问指令,均执行:
基于当前第二访问指令中的操作目标,调用第二访问控制钩子;其中,第二访问控制钩子的操作目标至少包括关闭目标文件、读取目标文件、写目标文件、目标文件删除;第二访问指令包括操作目标和访问信息;
步骤108,第二访问控制钩子基于目标文件代理对象和当前第二访问指令中的访问信息,执行该第二访问控制钩子的设定操作。
本发明实施例中,首先,当接收到操作用户的打开目标文件的第一访问指令时,调用第一访问控制钩子;那么,第一访问控制钩子就会查询目标文件所在目录的安全策略,在安全策略中含有当前目录的用户共享规则;那么,当获取到安全策略时,第一访问控制钩子就会调用文件代理对象创建接口,以利用文件代理对象创建接口基于安全策略从目录副本中查询操作用户可以查看操作的所有目标文件的合并内容,以此生成目标文件代理对象,然后将目标文件代理对象返回给操作用户;需要注意的是,目录副本存储有每个用户在该目录的私有文件,操作用户根据安全策略可以查看的合并内容为多个用户副本中目标文件的合并对象;接下来,针对接收到的每一个第二访问指令,均执行:基于当前第二访问指令中的操作目标,调用第二访问控制钩子;其中,第二访问控制钩子的操作目标至少包括关闭目标文件、读取目标文件、写目标文件、目标文件删除;且第二访问指令包括操作目标和访问信息;那么,第二访问控制钩子基于目标文件代理对象和当前第二访问指令中的访问信息,可以执行该第二访问控制钩子的设定操作。因此,本方案能够根据多用户级目录的安全策略,实现多用户的同一文件数据的安全隔离,保证多用户之间数据的隐私性。
针对步骤100和步骤102:
在本发明实施例中,存在一个安全策略库,用于以策略链表的形式存储着多个目录的安全策略。
举例来说,策略链表的节点数据如下所示:
{目录路径;安全策略}
目录路径是一个STRING字符串数据,记录着目录的全路径信息,用于在匹配目标目录的安全策略。
安全策略库设计为一个网状数据结构模型,其记录着各个用户之间的目录共享情况。比如用户1共享目录test给用户2,则用户2可以访问用户1test目录副本下的所有私有文件;用户2共享目录test给用户1,则用户1可以访问用户2test目录副本下的所有私有文件。可以理解,在安全策略库中某一个目录路径下安全策略为空时,所有用户在此目录下的文件是互相隔离的。
在一些实施方式中,安全策略包括第一用户名和基础操作符;其中,基础操作符包括共享操作、共享于操作、共享所有用户操作和共享给所有用户操作;
当基础操作符为共享操作和共享于操作时,安全策略还包括一个第二用户名,且第二用户名位于基础操作符之后;
当基础操作符为共享所有用户操作和共享给所有用户操作时,安全策略还包括“expect”操作和至少一个第三用户名,且“expect”操作和至少一个第三用户名依次位于基础操作符之后。
在本实施例中,当基础操作符为共享操作share和共享于操作shareto时,安全策略还包括一个第二用户名,且第二用户名位于基础操作符之后;
举例来说,安全策略为:用户1 share用户2,表示用户1共享用户2的目录副本;同理,安全策略为:用户1 shareto用户2,表示用户1的目录副本共享给用户2。
另外,在基础操作符之前有一个可选操作符,为反向符“!”,可以加,也可以不加,加的时候代表取消共享。
当基础操作符为共享所有用户操作shareall和共享给所有用户操作sharetoall时,安全策略还可以包括“expect”操作和至少一个第三用户名,且“expect”操作和至少一个第三用户名依次位于基础操作符之后。
举例来说,安全策略为:用户1 shareall,表示用户1共享所有其他用户的目录副本;同理,安全策略为:用户1 sharetoall,表示用户1的目录副本共享给所有其他用户;而当安全策略为:用户1 shareall expect用户2,表示用户1共享除了用户2外所有其他用户的目录副本;同理,安全策略为:用户1 sharetoall expect用户2,表示用户1的目录副本共享给除了用户2外所有其他用户;需要注意的是,“expect”操作后可以跟着多个以逗号隔开的第三用户名。
在本发明实施例中,还包括一种策略添加指令,用于往安全策略库中添加安全策略。
策略添加指令的格式为:{@目录路径;安全策略}
@目录路径表示把目录路径加入到多用户级目录的访问控制中,也即意味着随后的安全策略对此目录路径有效。另外,策略添加指令可以只包含“@目录路径”,而安全策略为空。
另外,本实施例设计的多用户级目录访问控制,不支持嵌套对目录进行安全策略设置。比如在/tmp/test/目录路径上设置了安全策略,则使用策略添加指令再次对/tmp/目录设置安全策略时,则无法正确的对/tmp/目录进行安全策略设置。
需要说明的是,策略添加指令中第一用户名、第二用户名、第三用户名互相为不同的用户名称,否则策略添加指令会忽略此指令,无法添加至安全策略库中。
另外,钩子是一种机制,通过它应用可以监听事件,监听某一特定事件类型的函数就是钩子过程。钩子过程可以对接收到的每个事件进行操作,然后修改或丢弃该事件。
针对步骤104:
在本实施例中,设计了用户目录副本管理模块,负责对各用户的目录副本进行管理,主要包括对用户的目录副本位置进行设置。其中,操作系统中每个用户在指定目录的私有文件存储在各自的目录副本中。
且在操作系统设置了文件代理对象创建接口,用于根据对应目录设定的多用户级的安全策略,生成目标文件在操作系统中的目标文件代理对象。文件代理对象根据安全策略的不同,它可能指向一个某个用户目录副本中的私有文件或者是多个用户目录副本中同名文件的合并对象;其中,合并对象是一个抽象对象,它通过链表结构维护着各个物理目标文件实体对象。当指向一个某个用户目录副本中的私有文件时,代表目标文件只能被该用户查看和操作;而当指向多个用户目录副本中同名文件的合并对象时,代表目标文件包括多个区域的数据,且每个区域是由不同用户添加的,操作用户能查看到多个用户目录副本中同名文件的合并对象时,代表操作用户可以查看同一目标文件多个用户的添加数据。因此,本方案,能够根据多用户级目录的安全策略,实现多用户的同一文件数据的安全隔离,保证多用户之间数据的隐私性。
在一些实施方式中,文件代理对象创建接口是通过如下方式生成目标文件代理对象的:
基于目标文件的名称,创建一个初始的目标文件代理对象;
在操作用户的私有文件中查询是否含有目标文件;
若有,则将目标文件的实体文件信息填入临时链表的节点中,并遍历安全策略,以查找共享给操作用户的其他用户的私有文件中的目标文件,并将查找到的目标文件的实体文件信息依次填入临时链表的节点中;
若没有,则直接遍历安全策略,以查找共享给操作用户的其他用户的私有文件中的目标文件,并将查找到的目标文件的实体文件信息填入临时链表的节点中;
判断临时链表中的每一个节点是否为空;
若均为空,则销毁初始的目标文件代理对象,目标文件代理对象创建失败;
若不都为空,则将临时链表中不为空的节点存储的实体文件信息依次填充到初始的目标文件代理对象的链表中,然后计算并存储填充的每一个目标文件的长度,生成目标文件代理对象。
在本实施例中,文件代理对象创建接口根据安全策略在操作用户和共享给操作用户的其他用户的目录副本中查找目标文件对应的文件物理实体,并将查找到的文件物理实体的实体文件信息(可以包括存储位置,长度、创建时间、访问时间、用户属主、用户数组等信息)映射为目标文件代理对象,映射后的目标文件代理对象返回给文件调用者使用。
在操作系统中,除了操作用户的目录副本中存在目标文件的文件物理实体外,其他的用户也可能存在同名的多个文件物理实体,故而目标文件代理对象中使用链表结构对多个同名文件的实体文件信息进行存储。
其中,在操作用户的目录副本中存在需要处理的文件物理实体时,会作为链表中的第一个链表节点,其次会把符合安全策略的其他用户的同名文件的实体文件信息填充到随后的链表节点上,这样在读或者写文件时,优先对本操作用户中的目录副本的目标文件进行操作。
本实施例在创建目标文件代理对象时,目标文件代理对象的长度等于链表中所有文件物理实体的长度之和。目标文件代理对象的文件属性信息和第一个链表节点存储的实体文件信息相同。
针对步骤106和步骤108:
在本实施例中,第二访问控制钩子的操作目标至少包括关闭目标文件、读取目标文件、写目标文件、目标文件删除。
在一些实施例中,当第二访问控制钩子的操作目标为关闭目标文件时,步骤108可以包括:
第二访问控制钩子获取第二访问指令中的访问信息;其中,该第二访问指令中的访问信息包括目标文件的名称;
基于目标文件的名称,获取目标文件代理对象;
遍历目标文件代理对象的链表中的每一个节点,以基于实体文件信息释放对应的资源,直至释放目标文件代理对象。
在本实施例中,在步骤104根据操作用户的第一访问指令创建了目标文件代理对象后,操作用户可以关闭目标文件,即释放目标文件代理对象。
在一些实施例中,当第二访问控制钩子的操作目标为读取目标文件时,步骤108可以包括:
第二访问控制钩子获取第二访问指令中的访问信息;其中,该第二访问指令中的访问信息包括目标文件的名称、链表的初始读偏移、目标文件的读偏移和目标读长度;
基于目标文件的名称,获取目标文件代理对象;
基于链表的初始读偏移,确定第一个实体文件信息,以基于实体文件信息,获取第一个目标文件;
基于目标文件的读偏移和当前目标读长度,读取当前目标文件的数据;
判断当前目标读长度是否大于当前目标文件的长度与目标文件的读偏移的差值;
若大于,则增加链表的读偏移,以基于增加后的链表的读偏移,获取链表中的下一个目标文件,且将当前目标读长度与差值的差作为新的目标读长度,以跳转执行基于目标文件的读偏移和当前目标读长度,读取当前目标文件的数据;
若不大于,则将读取的所有数据返回给操作用户。
在本实施例中,在步骤104根据操作用户的第一访问指令创建了目标文件代理对象后,操作用户可以发送读取目标文件的第二访问指令,那么第二访问控制钩子就会按照目标文件代理对象中的链表,来依次读取多用户的目录副本中的目标文件的实体进行读取,实现跨用户的合并读操作。可见,本方案可以实现多用户文件数据的安全隔离,保证多用户之间数据的隐私性。
在一些实施例中,当第二访问控制钩子的操作目标为写目标文件时,步骤108可以包括:
第二访问控制钩子获取第二访问指令中的访问信息;其中,该第二访问指令中的访问信息包括目标文件的名称、链表的初始写偏移、目标文件的写偏移和目标写长度;
基于目标文件的名称,获取目标文件代理对象;
基于链表的初始写偏移,确定第一个实体文件信息,以基于实体文件信息,获取第一个目标文件;
基于目标文件的写偏移和当前目标写长度,在当前目标文件中写入数据;
判断当前目标写长度是否大于在当前目标文件中写入数据的实际长度;
若大于,则增加链表的写偏移,以基于增加后的链表的写偏移,获取链表中的下一个目标文件,且将当前目标写长度与在当前目标文件中写入数据的实际长度的差值作为新的目标写长度,以跳转执行基于目标文件的写偏移和当前目标写长度,在当前目标文件中写入数据,直至新的目标写长度小于等于在获取的新的目标文件中写入数据的实际长度为止。
在本实施例中,在步骤104根据操作用户的第一访问指令创建了目标文件代理对象后,操作用户可以发送写目标文件的第二访问指令,那么第二访问控制钩子就会按照目标文件代理对象中的链表,来依次对多用户的目录副本中的目标文件的实体进行写入,实现跨用户的合并写操作。可见,本方案可以实现多用户文件数据的安全隔离,保证多用户之间数据的隐私性。
在一些实施例中,当第二访问控制钩子的操作目标为目标文件删除时,步骤108可以包括:
所述第二访问控制钩子获取第二访问指令中的访问信息;其中,该第二访问指令中的访问信息包括目标文件的名称;
基于目标文件的名称,获取目标文件代理对象;
遍历目标文件代理对象的链表中的每一个节点,以依次找到所有的目标文件的文件物理实体后,删除找到的每一个目标文件的文件物理实体。
另外,在一些实施方式中,还包括:
当接收到操作用户的目标目录浏览的控制指令时,调用第三访问控制钩子;第三访问控制钩子的操作目标为目标目录浏览;
第三访问控制钩子获取目标目录的安全策略,以确定安全策略中共享给操作用户的每一个其他用户名;
遍历操作用户和共享给操作用户的每一个其他用户的目录副本,过滤掉不同用户的目录副本下的同名文件,得到操作用户在目标目录中有访问权限的文件列表;
将文件列表返回给操作用户。
在本实施例中,操作用户可以随时发布目标目录浏览的控制指令,那么,第三访问控制钩子会获取目标目录的安全策略,以确定安全策略中共享给操作用户的每一个其他用户名,那么,就可以遍历操作用户和共享给操作用户的每一个其他用户的目录副本,过滤掉不同用户的目录副本下的同名文件,得到操作用户在目标目录中有访问权限的文件列表。
如图2、图3所示,本发明实施例提供了一种多用户级目录的访问控制装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。从硬件层面而言,如图2所示,为本发明实施例提供的一种多用户级目录的访问控制装置所在计算设备的一种硬件架构图,除了图2所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的计算设备通常还可以包括其他硬件,如负责处理报文的转发芯片等等。以软件实现为例,如图3所示,作为一个逻辑意义上的装置,是通过其所在计算设备的CPU将非易失性存储器中对应的计算机程序读取到内存中运行形成的。本实施例提供的一种多用户级目录的访问控制装置,装置包括:
第一接收单元301,用于当接收到操作用户的打开目标文件的第一访问指令时,调用第一访问控制钩子;其中,第一访问控制钩子的操作目标为打开目标文件;
查询单元302,第一访问控制钩子查询目标文件所在目录的安全策略;
创建单元303,用于当获取到安全策略时,第一访问控制钩子调用文件代理对象创建接口,以利用文件代理对象创建接口基于安全策略从目录副本中查询目标文件,以此生成目标文件代理对象,然后将目标文件代理对象返回给操作用户;其中,目录副本存储有每个用户在该目录的私有文件,安全策略含有当前目录的用户共享规则;
第二接收单元304,用于针对接收到的每一个第二访问指令,均执行:基于当前第二访问指令中的操作目标,调用第二访问控制钩子;其中,第二访问控制钩子的操作目标至少包括关闭目标文件、读取目标文件、写目标文件、目标文件删除;第二访问指令包括操作目标和访问信息;
执行单元305,第二访问控制钩子基于目标文件代理对象和当前第二访问指令中的访问信息,执行该第二访问控制钩子的设定操作。
本发明一个实施例中,查询单元302中安全策略包括第一用户名和基础操作符;其中,基础操作符包括共享操作、共享于操作、共享所有用户操作和共享给所有用户操作;
当基础操作符为共享操作和共享于操作时,安全策略还包括一个第二用户名,且第二用户名位于基础操作符之后;
当基础操作符为共享所有用户操作和共享给所有用户操作时,安全策略还包括“expect”操作和至少一个第三用户名,且“expect”操作和至少一个第三用户名依次位于基础操作符之后。
本发明一个实施例中,创建单元303中文件代理对象创建接口是通过如下方式生成目标文件代理对象的:
基于目标文件的名称,创建一个初始的目标文件代理对象;
在操作用户的私有文件中查询是否含有目标文件;
若有,则将目标文件的实体文件信息填入临时链表的节点中,并遍历安全策略,以查找共享给操作用户的其他用户的私有文件中的目标文件,并将查找到的目标文件的实体文件信息依次填入临时链表的节点中;
若没有,则直接遍历安全策略,以查找共享给操作用户的其他用户的私有文件中的目标文件,并将查找到的目标文件的实体文件信息填入临时链表的节点中;
判断临时链表中的每一个节点是否为空;
若均为空,则销毁初始的目标文件代理对象,目标文件代理对象创建失败;
若不都为空,则将临时链表中不为空的节点存储的实体文件信息依次填充到初始的目标文件代理对象的链表中,然后计算并存储填充的每一个目标文件的长度,生成目标文件代理对象。
本发明一个实施例中,当第二访问控制钩子的操作目标为关闭目标文件时,执行单元305中第二访问控制钩子基于目标文件代理对象和当前第二访问指令中的访问信息,执行该第二访问控制钩子的设定操作,包括:
第二访问控制钩子获取第二访问指令中的访问信息;其中,该第二访问指令中的访问信息包括目标文件的名称;
基于目标文件的名称,获取目标文件代理对象;
遍历目标文件代理对象的链表中的每一个节点,以基于实体文件信息释放对应的资源,直至释放目标文件代理对象。
本发明一个实施例中,当第二访问控制钩子的操作目标为读取目标文件时,执行单元305中第二访问控制钩子基于目标文件代理对象和当前第二访问指令中的访问信息,执行该第二访问控制钩子的设定操作,包括:
第二访问控制钩子获取第二访问指令中的访问信息;其中,该第二访问指令中的访问信息包括目标文件的名称、链表的初始读偏移、目标文件的读偏移和目标读长度;
基于目标文件的名称,获取目标文件代理对象;
基于链表的初始读偏移,确定第一个实体文件信息,以基于实体文件信息,获取第一个目标文件;
基于目标文件的读偏移和当前目标读长度,读取当前目标文件的数据;
判断当前目标读长度是否大于当前目标文件的长度与目标文件的读偏移的差值;
若大于,则增加链表的读偏移,以基于增加后的链表的读偏移,获取链表中的下一个目标文件,且将当前目标读长度与差值的差作为新的目标读长度,以跳转执行基于目标文件的读偏移和当前目标读长度,读取当前目标文件的数据;
若不大于,则将读取的所有数据返回给操作用户。
本发明一个实施例中,当第二访问控制钩子的操作目标为写目标文件时,执行单元305中第二访问控制钩子基于目标文件代理对象和当前第二访问指令中的访问信息,执行该第二访问控制钩子的设定操作,包括:
第二访问控制钩子获取第二访问指令中的访问信息;其中,该第二访问指令中的访问信息包括目标文件的名称、链表的初始写偏移、目标文件的写偏移和目标写长度;
基于目标文件的名称,获取目标文件代理对象;
基于链表的初始写偏移,确定第一个实体文件信息,以基于实体文件信息,获取第一个目标文件;
基于目标文件的写偏移和当前目标写长度,在当前目标文件中写入数据;
判断当前目标写长度是否大于在当前目标文件中写入数据的实际长度;
若大于,则增加链表的写偏移,以基于增加后的链表的写偏移,获取链表中的下一个目标文件,且将当前目标写长度与在当前目标文件中写入数据的实际长度的差值作为新的目标写长度,以跳转执行基于目标文件的写偏移和当前目标写长度,在当前目标文件中写入数据,直至新的目标写长度小于等于在获取的新的目标文件中写入数据的实际长度为止。
本发明一个实施例中,还包括浏览单元306,用于执行:
当接收到操作用户的目标目录浏览的控制指令时,调用第三访问控制钩子;第三访问控制钩子的操作目标为目标目录浏览;
第三访问控制钩子获取目标目录的安全策略,以确定安全策略中共享给操作用户的每一个其他用户名;
遍历操作用户和共享给操作用户的每一个其他用户的目录副本,过滤掉不同用户的目录副本下的同名文件,得到操作用户在目标目录中有访问权限的文件列表;
将文件列表返回给操作用户。
可以理解的是,本发明实施例示意的结构并不构成对一种多用户级目录的访问控制装置的具体限定。在本发明的另一些实施例中,一种多用户级目录的访问控制装置可以包括比图示更多或者更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件或者软件和硬件的组合来实现。
上述装置内的各模块之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本发明实施例还提供了一种计算设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时,实现本发明任一实施例中的一种多用户级目录的访问控制方法。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序在被处理器执行时,使所述处理器执行本发明任一实施例中的一种多用户级目录的访问控制方法。
具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机(或CPU或MPU)读出并执行存储在存储介质中的程序代码。
在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本发明的一部分。
用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD+RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上下载程序代码。
此外,应该清楚的是,不仅可以通过执行计算机所读出的程序代码,而且可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作,从而实现上述实施例中任意一项实施例的功能。
此外,可以理解的是,将由存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展模块中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展模块上的CPU等来执行部分和全部实际操作,从而实现上述实施例中任一实施例的功能。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

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

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310953127.4A CN116663042B (zh) 2023-08-01 2023-08-01 多用户级目录的访问控制方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310953127.4A CN116663042B (zh) 2023-08-01 2023-08-01 多用户级目录的访问控制方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN116663042A true CN116663042A (zh) 2023-08-29
CN116663042B CN116663042B (zh) 2023-10-13

Family

ID=87722841

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310953127.4A Active CN116663042B (zh) 2023-08-01 2023-08-01 多用户级目录的访问控制方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN116663042B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117938942A (zh) * 2024-03-20 2024-04-26 中国科学院空天信息创新研究院 服务注册发现方法、装置、设备、介质及程序产品

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080005133A1 (en) * 2006-06-30 2008-01-03 Microsoft Corporation Merging file system directories
CN102693174A (zh) * 2012-06-06 2012-09-26 武汉大学 一种面向对象代理数据库约束的备份方法
CN112231733A (zh) * 2020-10-29 2021-01-15 刘秀萍 对象代理特征数据库的mac防护增强系统
CN113746777A (zh) * 2020-05-27 2021-12-03 华为技术有限公司 安全访问数据的方法及电子设备
CN114021089A (zh) * 2021-09-29 2022-02-08 苏州浪潮智能科技有限公司 一种目录访问控制方法、装置、设备及可读存储介质
CN114372282A (zh) * 2021-12-31 2022-04-19 北京北信源软件股份有限公司 文件访问控制方法、装置、电子设备、介质和程序产品

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080005133A1 (en) * 2006-06-30 2008-01-03 Microsoft Corporation Merging file system directories
CN102693174A (zh) * 2012-06-06 2012-09-26 武汉大学 一种面向对象代理数据库约束的备份方法
CN113746777A (zh) * 2020-05-27 2021-12-03 华为技术有限公司 安全访问数据的方法及电子设备
CN112231733A (zh) * 2020-10-29 2021-01-15 刘秀萍 对象代理特征数据库的mac防护增强系统
CN114021089A (zh) * 2021-09-29 2022-02-08 苏州浪潮智能科技有限公司 一种目录访问控制方法、装置、设备及可读存储介质
CN114372282A (zh) * 2021-12-31 2022-04-19 北京北信源软件股份有限公司 文件访问控制方法、装置、电子设备、介质和程序产品

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
魏立峰;丁滟;陈松政;黄辰林;: "基于私有目录容器的用户数据文件保护方法", 计算机工程与科学, no. 03 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117938942A (zh) * 2024-03-20 2024-04-26 中国科学院空天信息创新研究院 服务注册发现方法、装置、设备、介质及程序产品
CN117938942B (zh) * 2024-03-20 2024-05-28 中国科学院空天信息创新研究院 服务注册发现方法、装置、设备、介质及程序产品

Also Published As

Publication number Publication date
CN116663042B (zh) 2023-10-13

Similar Documents

Publication Publication Date Title
CN109167811B (zh) 一种基于区块链的跨链数据访问方法和装置
US10949551B2 (en) Policy aware unified file system
CN111782668B (zh) 数据结构的读取及更新方法、装置、电子设备
EP3777025A1 (en) Blockchain-based cross-chain data operation method and apparatus
US6665675B1 (en) Shared file system having a token-ring style protocol for managing meta-data
CN106101113B (zh) 一种云计算数据安全标记管理方法及系统
US10417179B2 (en) Method for managing files and apparatus using the same
CN116663042B (zh) 多用户级目录的访问控制方法、装置、设备及存储介质
CN107783988B (zh) 一种目录树的加锁方法及设备
US20150142749A1 (en) Method and system for a safe archiving of data
CN111898139A (zh) 数据读写方法及装置、电子设备
US20050234966A1 (en) System and method for managing supply of digital content
CN110032568B (zh) 数据结构的读取及更新方法、装置、电子设备
CN103294794B (zh) 一种在线归档和访问文件的系统
KR20050063669A (ko) 다수의 키 캐시 매니저가 보안 칩의 암호화 키 저장부리소스를 공유하는 방법 및 컴퓨터 판독가능 기록 매체
CN112000971A (zh) 一种文件权限记录方法、系统及相关装置
US20130226969A1 (en) Data access control apparatus and data access control method
JP2006146615A (ja) オブジェクト関連情報管理プログラム、管理方法、および管理装置。
CN108959403A (zh) 一种分布式事务处理方法及装置
CN112905564B (zh) 基于Atlas管理Oracle数据库元数据的方法及装置
CN112307272B (zh) 确定对象之间关系信息的方法、装置、计算设备及存储介质
CN104285221A (zh) 对跨各内容源的内容的高效原地保留
CN114647663A (zh) 一种资源处理方法、装置、系统、电子设备及存储介质
US7209248B1 (en) Managing the lifetime of distributed resource data using temporal scopes
CN108694102A (zh) 一种基于Nexus服务的数据操作方法、设备、系统和介质

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
CP03 Change of name, title or address

Address after: 100102 room 2, 1301, floor 13, building 3, yard 6, lizexi street, Chaoyang District, Beijing

Patentee after: Beijing Changqing Software Co.,Ltd.

Country or region after: China

Address before: No. 38, Room 726, Building 1-7, Building 1-7, No. 1 Jinsong South Road, Chaoyang District, Beijing, 100021

Patentee before: Beijing Changyang Software Co.,Ltd.

Country or region before: China

CP03 Change of name, title or address