[go: up one dir, main page]

CN112800007B - 适用于fat32文件系统的目录项扩展方法和系统 - Google Patents

适用于fat32文件系统的目录项扩展方法和系统 Download PDF

Info

Publication number
CN112800007B
CN112800007B CN202110121701.0A CN202110121701A CN112800007B CN 112800007 B CN112800007 B CN 112800007B CN 202110121701 A CN202110121701 A CN 202110121701A CN 112800007 B CN112800007 B CN 112800007B
Authority
CN
China
Prior art keywords
directory entry
extended
directory
file system
sector
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.)
Active
Application number
CN202110121701.0A
Other languages
English (en)
Other versions
CN112800007A (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.)
Shanghai Huayuan Chuangxin Software Co ltd
Original Assignee
Shanghai Huayuan Chuangxin 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 Shanghai Huayuan Chuangxin Software Co ltd filed Critical Shanghai Huayuan Chuangxin Software Co ltd
Priority to CN202110121701.0A priority Critical patent/CN112800007B/zh
Publication of CN112800007A publication Critical patent/CN112800007A/zh
Application granted granted Critical
Publication of CN112800007B publication Critical patent/CN112800007B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种适用于FAT32文件系统的目录项扩展方法和系统,包括:对已经格式化为FAT32文件系统的磁盘介质进行全盘目录项扫描,将原始目录项重新排列以符合目录项扩展的格式要求;查找到文件名对应的目录项后,通过唯一映射关系以及扩展目录项标记查找到对应该目录项的扩展目录项在扇区中的偏移,将所需存储的属性信息写入扩展目录项;通过唯一映射关系以及扩展目录项标记查找到对应该目录下的扩展目录项在扇区中的偏移,将所需属性信息从扩展目录项中读取出来。本发明可实用于信息安全领域,解决了FAT32文件系统不支持存放信息安全相关属性的痛点,对信息安全领域访问控制技术具有较高的实用价值。

Description

适用于FAT32文件系统的目录项扩展方法和系统
技术领域
本发明涉及计算机技术领域,具体地,涉及一种适用于FAT32文件系统的目录项扩展方法和系统。
背景技术
FAT32指的是文件分配表采用32位二进制数记录管理的磁盘文件管理方式,因FAT类文件系统的核心是文件分配表,命名由此得来。FAT32文件系统的优点是稳定性和兼容性好,且维护方便,缺点是安全性差。由于FAT32文件系统用于记录文件属性信息的文件目录项在通用实现中规定使用32位二进制数存储文件名、文件创建时间、文件分类属性、文件簇号以及文件长度,无法再存储更多的属性信息,比如文件所属用户、所属组、文件读写属性等,如需对文件进行更多属性的控制,则无法在FAT32文件系统上实现。Linux操作系统使用ext3/ext4文件系统存放文件权限相关属性,Windows操作系统使用NTFS存放文件权限相关属性,有文件权限属性,系统则能够对文件资源的访问进行安全防护。但几乎没有操作系统使用FAT32文件系统存放安全属性信息,因此无法被用于信息安全等级较高系统当中。
专利文献CN1940950A(申请号:CN200610116302.0)公开了一种用于网络信息技术领域的计算机网络最小侵入式数据隐藏的方法,包括隐藏文件、恢复隐藏文件两部分,隐藏文件时,通过修改FAT32文件系统的文件目录表,使之对于用户和操作系统不可见,并将文件恢复所需的控制信息隐藏其中;修改FAT表文件首簇地址,切断文件在FAT表中的簇链,防止绝大多数的病毒和恶意程序的攻击;恢复隐藏文件时,只需要原文件的全路径名,即能在文件目录表中找到控制信息,恢复FDT和FAT,文件恢复完成。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种适用于FAT32文件系统的目录项扩展方法和系统。
根据本发明提供的适用于FAT32文件系统的目录项扩展方法,包括:
前置扫描步骤:对已经格式化为FAT32文件系统的磁盘介质进行全盘目录项扫描,将原始目录项重新排列以符合目录项扩展的格式要求;
扩展目录项存储步骤:查找到文件名对应的目录项后,通过唯一映射关系以及扩展目录项标记查找到对应该目录项的扩展目录项在扇区中的偏移,将所需存储的属性信息写入扩展目录项,同时对该目录项进行标记,以便FAT32文件系统目录项被通用系统解析,同时将扩展目录项解析为无法显示的目录项;
扩展目录项读取步骤:查找到文件名对应的目录项后,通过唯一映射关系以及扩展目录项标记查找到对应该目录下的扩展目录项在扇区中的偏移,将所需属性信息从扩展目录项中读取出来。
优选的,所述前置扫描步骤包括:
扫描并区分文件系统所有目录项是否是未经扩展的目录项,并全部记录形成目录项的树形结构;
对扫描区分出未扩展的目录项结构的树节点进行目录项扩展,并更新目录项树形结构;
对扫描区分出已完成扩展的目录项结构的树节点,保持目录项结构不变。
优选的,所述前置扫描步骤还包括:将更新后的目录项树形结构写入存储介质上FAT32文件系统的目录区域。
优选的,所述扩展目录项存储步骤包括:通过查找到文件名对应的目录项,计算出扩展目录项在扇区中的偏移,将属性信息写入扩展目录项,对于跨扇区的扩展目录项,需要向文件系统申请新的簇,申请成功后同步更新FAT表。
优选的,所述扩展目录项读取步骤包括:通过查找到为文件名对应的目录项,计算出扩展目录项在扇区中的偏移,将属性信息从扩展目录项中读取出来,对于跨越扇区的扩展目录项,需要向文件系统申请检索本目录的下一簇,检索成功后在新的簇上查找扩展目录项,并将属性信息从扩展目录项中读取出来。
根据本发明提供的适用于FAT32文件系统的目录项扩展系统,包括:
前置扫描模块:对已经格式化为FAT32文件系统的磁盘介质进行全盘目录项扫描,将原始目录项重新排列以符合目录项扩展的格式要求;
扩展目录项存储模块:查找到文件名对应的目录项后,通过唯一映射关系以及扩展目录项标记查找到对应该目录项的扩展目录项在扇区中的偏移,将所需存储的属性信息写入扩展目录项,同时对该目录项进行标记,以便FAT32文件系统目录项被通用系统解析,同时将扩展目录项解析为无法显示的目录项;
扩展目录项读取模块:查找到文件名对应的目录项后,通过唯一映射关系以及扩展目录项标记查找到对应该目录下的扩展目录项在扇区中的偏移,将所需属性信息从扩展目录项中读取出来。
优选的,所述前置扫描模块包括:
扫描并区分文件系统所有目录项是否是未经扩展的目录项,并全部记录形成目录项的树形结构;
对扫描区分出未扩展的目录项结构的树节点进行目录项扩展,并更新目录项树形结构;
对扫描区分出已完成扩展的目录项结构的树节点,保持目录项结构不变。
优选的,所述前置扫描模块还包括:将更新后的目录项树形结构写入存储介质上FAT32文件系统的目录区域。
优选的,所述扩展目录项存储模块包括:通过查找到文件名对应的目录项,计算出扩展目录项在扇区中的偏移,将属性信息写入扩展目录项,对于跨扇区的扩展目录项,需要向文件系统申请新的簇,申请成功后同步更新FAT表。
优选的,所述扩展目录项读取模块包括:通过查找到为文件名对应的目录项,计算出扩展目录项在扇区中的偏移,将属性信息从扩展目录项中读取出来,对于跨越扇区的扩展目录项,需要向文件系统申请检索本目录的下一簇,检索成功后在新的簇上查找扩展目录项,并将属性信息从扩展目录项中读取出来。
与现有技术相比,本发明具有如下的有益效果:
(1)本发明解决了FAT32文件系统目录项结构不支持存储的扩展属性信息的问题,对扩展文件系统文件存储功能具有较高的实用价值;
(2)本发明的扩展目录项可用于存放文件权限相关属性,使得FAT32文件系统能够被应用于有信息安全保护要求的系统当中,同时保持了FAT32文件系统稳定性高、兼容性好的优势;
(3)本发明具备易移植性、可裁剪性和高灵活性,适用于大多数FAT32文件系统实现。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明的FAT32文件系统结构示意图;
图2为本发明的前置扫描流程图;
图3为本发明扩展目录项后目录区域的实际存储图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
实施例:
如图2所示,为本发明的前置扫描流程图,由于不同操作系统对FAT32的实现会存在差异化,对于便携存储介质比如U盘,很可能出现在不同操作系统之间转移文件,那么对未进行目录项扩展的目录项,就需要进行初始扫描并进行重新排列,该操作不会影响存储介质中文件实际数据的存储,同时当扩展目录项后,也不会通用系统无法识别存储介质中FAT32文件系统中的目录和文件,如图1,为本发明的FAT32文件系统结构示意图。
扫描的过程:首先要从原存储介质中读取出整个目录项的映像并存储在一个树形结构中,并检查每个目录项是否已有扩展目录项特殊标记,对每个目录项的类型做好记录。其次,对每个树形节点的属性进行重写,为每个未进行目录项扩展的目录项执行目录项扩展操作并进行初始化填充,初始化填充由实际应用场景决定。其次,对更新好的树形结构,从根目录扇区开始进行重写,在重写过程同步更新FAT表中扇区的簇号,以使其保持簇链的完整性。
扩展目录项存储过程:用户在存储文件时,可通过特定接口进行扩展目录项信息的填充,接口由实际应用场景决定。使用一般方法查找到文件对应的目录项后,取该目录项的后32bit偏移,对于未超过本扇区的情况,偏移等于当前目录项偏移加32bit,对于超过本扇区的情况,需向文件系统重新申请新簇,在新簇上的扇区进行扩展目录项的存储,此时目录项扇区偏移为0,同时需要更新FAT表以便形成完整的簇链,如图3,为本发明扩展目录项后目录区域的实际存储图。
扩展目录项读取过程:用户在读取文件时,可通过特定接口进行扩展目录项信息的填充,接口由实际应用场景决定。使用一般方法查找到文件对应的目录项后,取该目录项的后32bit偏移,对于未超过本扇区的情况,偏移等于当前目录项偏移加32bit,对于超过本扇区的情况,通过查询FAT表获取下一簇,在下一簇的第一个扇区的第一个目录项即为扩展目录项的读取位置,此时目录项扇区偏移为0。扩展目录项结构如下表1所示:
Figure BDA0002922258880000051
表1
以一个FAT32文件系统的U盘为例,Windows为通用操作系统,嵌入式操作系统为具有扩展目录项功能的特定操作系统。首先U盘在带有Windows的笔记本电脑上选择格式化为FAT32文件系统并存储若干文件,将U盘插入嵌入式操作系统的USB接口,在成功挂载上U盘后,嵌入式操作系统会对U盘进行前置扫描,将原始目录项全部重新排列为扩展目录项的格式,并重新写回U盘,此后在该嵌入式操作系统上进行的文件操作都会按照扩展目录项的格式进行存储,其次,将U盘重新插入带有Windows操作系统的笔记本电脑,笔记本电脑能识别U盘原有文件以及新增的文件,同时对扩展的扩展目录项,在Windows操作系统中不会被显示。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

Claims (10)

1.一种适用于FAT32文件系统的目录项扩展方法,其特征在于,包括:
前置扫描步骤:对已经格式化为FAT32文件系统的磁盘介质进行全盘目录项扫描,将原始目录项重新排列以符合目录项扩展的格式要求;
扩展目录项存储步骤:查找到文件名对应的目录项后,通过唯一映射关系以及扩展目录项标记查找到对应该目录项的扩展目录项在扇区中的偏移,将所需存储的属性信息写入扩展目录项,同时对该目录项进行标记,以便FAT32文件系统目录项被通用系统解析,同时将扩展目录项解析为无法显示的目录项;
扩展目录项读取步骤:查找到文件名对应的目录项后,通过唯一映射关系以及扩展目录项标记查找到对应该目录下的扩展目录项在扇区中的偏移,将所需属性信息从扩展目录项中读取出来。
2.根据权利要求1所述的适用于FAT32文件系统的目录项扩展方法,其特征在于,所述前置扫描步骤包括:
扫描并区分文件系统所有目录项是否是未经扩展的目录项,并全部记录形成目录项的树形结构;
对扫描区分出未扩展的目录项结构的树节点进行目录项扩展,并更新目录项树形结构;
对扫描区分出已完成扩展的目录项结构的树节点,保持目录项结构不变。
3.根据权利要求2所述的适用于FAT32文件系统的目录项扩展方法,其特征在于,所述前置扫描步骤还包括:将更新后的目录项树形结构写入存储介质上FAT32文件系统的目录区域。
4.根据权利要求1所述的适用于FAT32文件系统的目录项扩展方法,其特征在于,所述扩展目录项存储步骤包括:通过查找到文件名对应的目录项,计算出扩展目录项在扇区中的偏移,将属性信息写入扩展目录项,对于跨扇区的扩展目录项,需要向文件系统申请新的簇,申请成功后同步更新FAT表。
5.根据权利要求1所述的适用于FAT32文件系统的目录项扩展方法,其特征在于,所述扩展目录项读取步骤包括:通过查找到为文件名对应的目录项,计算出扩展目录项在扇区中的偏移,将属性信息从扩展目录项中读取出来,对于跨越扇区的扩展目录项,需要向文件系统申请检索本目录的下一簇,检索成功后在新的簇上查找扩展目录项,并将属性信息从扩展目录项中读取出来。
6.一种适用于FAT32文件系统的目录项扩展系统,其特征在于,包括:
前置扫描模块:对已经格式化为FAT32文件系统的磁盘介质进行全盘目录项扫描,将原始目录项重新排列以符合目录项扩展的格式要求;
扩展目录项存储模块:查找到文件名对应的目录项后,通过唯一映射关系以及扩展目录项标记查找到对应该目录项的扩展目录项在扇区中的偏移,将所需存储的属性信息写入扩展目录项,同时对该目录项进行标记,以便FAT32文件系统目录项被通用系统解析,同时将扩展目录项解析为无法显示的目录项;
扩展目录项读取模块:查找到文件名对应的目录项后,通过唯一映射关系以及扩展目录项标记查找到对应该目录下的扩展目录项在扇区中的偏移,将所需属性信息从扩展目录项中读取出来。
7.根据权利要求6所述的适用于FAT32文件系统的目录项扩展系统,其特征在于,所述前置扫描模块包括:
扫描并区分文件系统所有目录项是否是未经扩展的目录项,并全部记录形成目录项的树形结构;
对扫描区分出未扩展的目录项结构的树节点进行目录项扩展,并更新目录项树形结构;
对扫描区分出已完成扩展的目录项结构的树节点,保持目录项结构不变。
8.根据权利要求7所述的适用于FAT32文件系统的目录项扩展系统,其特征在于,所述前置扫描模块还包括:将更新后的目录项树形结构写入存储介质上FAT32文件系统的目录区域。
9.根据权利要求6所述的适用于FAT32文件系统的目录项扩展系统,其特征在于,所述扩展目录项存储模块包括:通过查找到文件名对应的目录项,计算出扩展目录项在扇区中的偏移,将属性信息写入扩展目录项,对于跨扇区的扩展目录项,需要向文件系统申请新的簇,申请成功后同步更新FAT表。
10.根据权利要求6所述的适用于FAT32文件系统的目录项扩展系统,其特征在于,所述扩展目录项读取模块包括:通过查找到为文件名对应的目录项,计算出扩展目录项在扇区中的偏移,将属性信息从扩展目录项中读取出来,对于跨越扇区的扩展目录项,需要向文件系统申请检索本目录的下一簇,检索成功后在新的簇上查找扩展目录项,并将属性信息从扩展目录项中读取出来。
CN202110121701.0A 2021-01-28 2021-01-28 适用于fat32文件系统的目录项扩展方法和系统 Active CN112800007B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110121701.0A CN112800007B (zh) 2021-01-28 2021-01-28 适用于fat32文件系统的目录项扩展方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110121701.0A CN112800007B (zh) 2021-01-28 2021-01-28 适用于fat32文件系统的目录项扩展方法和系统

Publications (2)

Publication Number Publication Date
CN112800007A CN112800007A (zh) 2021-05-14
CN112800007B true CN112800007B (zh) 2022-06-14

Family

ID=75812649

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110121701.0A Active CN112800007B (zh) 2021-01-28 2021-01-28 适用于fat32文件系统的目录项扩展方法和系统

Country Status (1)

Country Link
CN (1) CN112800007B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113220953B (zh) * 2021-05-24 2022-08-23 北京安盟信息技术股份有限公司 一种数据过滤方法及装置
CN113672565B (zh) * 2021-08-09 2022-08-05 深圳市猿人创新科技有限公司 一种文件标记方法、装置、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1599935A (zh) * 2001-12-05 2005-03-23 皇家飞利浦电子股份有限公司 具有基本和扩展文件系统能力的数据存储方法和设备
CN1858746A (zh) * 2005-05-04 2006-11-08 三星电子株式会社 在文件系统中存储和管理附加数据的设备和方法
CN101853275A (zh) * 2010-05-05 2010-10-06 北京中星微电子有限公司 一种fat文件系统的数据管理方法和系统
CN101983376A (zh) * 2008-04-04 2011-03-02 松下电器产业株式会社 访问装置、信息记录装置、信息记录系统、文件管理方法和程序
CN104657471A (zh) * 2015-02-13 2015-05-27 厦门雅迅网络股份有限公司 一种fat文件系统的预分配文件建立方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4676378B2 (ja) * 2006-05-18 2011-04-27 株式会社バッファロー データ記憶装置およびデータ記憶方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1599935A (zh) * 2001-12-05 2005-03-23 皇家飞利浦电子股份有限公司 具有基本和扩展文件系统能力的数据存储方法和设备
CN1858746A (zh) * 2005-05-04 2006-11-08 三星电子株式会社 在文件系统中存储和管理附加数据的设备和方法
CN101983376A (zh) * 2008-04-04 2011-03-02 松下电器产业株式会社 访问装置、信息记录装置、信息记录系统、文件管理方法和程序
CN101853275A (zh) * 2010-05-05 2010-10-06 北京中星微电子有限公司 一种fat文件系统的数据管理方法和系统
CN104657471A (zh) * 2015-02-13 2015-05-27 厦门雅迅网络股份有限公司 一种fat文件系统的预分配文件建立方法及系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Jeaho Hwang.A Caching Mechanism for FAT File System in Lowperformance Embedded System.《2016 18th International Conference on Advanced Communication Technology (ICACT)》.2016, *
庄文学.FAT32系统误删除数据的快速恢复方法研究.《电脑知识与技术》.2020,第16卷(第33期), *
陈培德.重建分区表与FAT32_DBR 研究与实现.《计算机技术与发展》.2016,第26卷(第10期), *

Also Published As

Publication number Publication date
CN112800007A (zh) 2021-05-14

Similar Documents

Publication Publication Date Title
US6789094B2 (en) Method and apparatus for providing extended file attributes in an extended attribute namespace
US7363540B2 (en) Transaction-safe FAT file system improvements
US8156165B2 (en) Transaction-safe FAT files system
CN112912868B (zh) 用于批量移除数据库中的记录的系统和方法
JP2007012058A (ja) フラッシュ様媒体におけるトランザクションレコードを格納するファイルシステム
CN106527958B (zh) 用于分布式存储系统的写入数据、获取数据的方法和设备
JP2007012056A (ja) データ保全の先送りされた認証を有するファイルシステム
US20120084272A1 (en) File system support for inert files
JP2007012054A (ja) ファイルシステム保全の最適化されたスタートアップ認証
US8495022B1 (en) Systems and methods for synthetic backups
JP2007012060A (ja) 逆階層構造を有するファイルシステム
US6374265B1 (en) Method for backup and recovery of the long filename in computer system
US8090925B2 (en) Storing data streams in memory based on upper and lower stream size thresholds
CN112800007B (zh) 适用于fat32文件系统的目录项扩展方法和系统
CN101983376A (zh) 访问装置、信息记录装置、信息记录系统、文件管理方法和程序
JP2005302038A (ja) Bツリー中の連続キーの名前を変更する方法およびシステム
EP3385846A1 (en) Method and device for processing access request, and computer system
CN113568582A (zh) 数据管理方法、装置和存储设备
EP3542273B1 (en) Systems and methods for recovering lost clusters from a mounted volume
JPWO2007099636A1 (ja) ファイルシステム移行方法、ファイルシステム移行プログラム及びファイルシステム移行装置
KR100987320B1 (ko) 고속 파일 복구가 가능한 fat 파일시스템을 사용한데이터 처리장치 및 데이터 처리방법
CN112416657A (zh) 一种系统克隆方法
CN100447765C (zh) 一种移动存储设备的映射方法
CN106126555A (zh) 一种文件管理方法及文件系统
CN109478181A (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
GR01 Patent grant
GR01 Patent grant