实现文件系统安全操作的方法和装置制造方法
【专利摘要】本发明实施例公开了实现文件系统安全操作的方法和装置。该方法包括:在操作系统启动之前,为第一原目录创建第一副本目录,第一原目录位于磁盘的只读分区,第一副本目录位于磁盘的读写分区;在文件系统启动时,将第一副本目录与第一原目录进行绑定,以使得在操作系统运行时,当对第一原目录进行操作时,实际是对第一副本目录进行操作;在绑定完毕后,将只读分区从读写状态重新设置为只读状态,并维持读写分区的读写状态,以使得重新设置后的第一原目录只支持读操作,第一副本目录同时支持读操作和写操作。通过本发明,可以使得当系统需要对位于只读状态分区的任意一个目录进行写操作时,该目录即可以支持系统对其文件的写操作。
【专利说明】实现文件系统安全操作的方法和装置
【技术领域】
[0001]本发明涉及计算机领域,特别是涉及实现文件系统安全操作的方法和装置。
【背景技术】
[0002]Linux文件系统采用标准的目录结构,在安装Linux操作系统的时候,安装程序就已经为用户创建了具有完整和固定目录结构的Linux文件系统,并指定了每个目录的作用以及其中的文件类型。
[0003]其中,Linux文件系统的目录结构为树型结构,如图1所示。即,在树型结构最上层的是根目录,从根目录出发而生成的其它目录都是该根目录的子目录。
[0004]但是,在实现本发明的过程中,本发明的发明人发现现有技术中至少存在如下问题:
[0005]为了实现对Linux文件系统的安全操作,本发明的发明人尝试性地按照对安全操作要求的不同将文件系统中的目录划分为两个部分,一部分目录仅支持读操作而不支持写操作,另一部分目录同时支持读操作和写操作。
[0006]例如,在根目录下的etc目录中通常会保存有与Linux操作系统启动相关的配置文件,账户和口令等信息就保存在该配置文件中,一旦该根目录下的etc目录中的配置文件被删除,Linux操作系统将无法正常启动。而为了避免因根目录下的etc目录中的配置文件被任意删除而导致操作系统无法正常启动,根目录下的etc目录中的文件只支持读操作而不支持写操作。
[0007]本发明的发明人还尝试性地将磁盘至少划分为两个分区:只读分区和读写分区。在Linux操作系统启动后且运行时,只读分区处于只读状态,读写分区处于读写状态。这样,位于只读状态分区中的目录就可以支持读操作而不支持写操作,位于读写状态分区中的目录就可以同时支持读操作和写操作。
[0008]但是,由于某些应用需求,可能需要对位于只读状态分区的某个目录中的文件进行读操作和写操作,如,根目录下的etc目录中的配置文件。目前,位于只读状态分区的目录无法支持系统对其文件进行写操作。
【发明内容】
[0009]为了解决上述技术问题,本发明实施例提供了实现文件系统安全操作的方法和装置,以使得当系统需要对位于只读状态分区的任意一个目录进行写操作时,该目录即可以支持系统对其文件的写操作。
[0010]本发明实施例公开了如下技术方案:
[0011]一种实现文件系统安全操作的方法,包括:
[0012]在操作系统启动之前,为第一原目录创建第一副本目录,所述第一原目录位于磁盘的只读分区,所述第一副本目录位于磁盘的读写分区;
[0013]在操作系统启动时,将所述第一副本目录与所述第一原目录进行绑定,以使得在操作系统运行时,当对所述第一原目录进行操作时,实际是对所述第一副本目录进行操作;
[0014]在绑定完毕后,将所述只读分区从读写状态重新设置为只读状态,并维持所述读写分区的读写状态,以使得重新设置后的所述第一原目录只支持读操作,所述第一副本目录同时支持读操作和写操作。
[0015]优选的,所述方法还包括:
[0016]在操作系统运行时,响应于对所述第一原目录的操作请求,对与所述第一原目录绑定的所述第一副本目录进行操作。
[0017]优选的,所述将所述第一副本目录与所述第一原目录进行绑定,以使得在操作系统运行时,当对所述第一原目录进行操作时,实际是对所述第一副本目录进行操作为:
[0018]将所述第一副本目录挂载到所述第一原目录上。
[0019]优选的,所述将所述第一副本目录挂载到所述第一原目录上,包括:
[0020]响应于对文件系统的启动请求,触发执行启动脚本;
[0021]在执行所述启动脚本时,根据所述启动脚本的逻辑顺序,将所述第一副本目录挂载到所述第一原目录上。
[0022]优选的,所述文件系统为Linux文件系统,所述第一原目录为Linux文件系统中根目录下的etc目录。
[0023]一种实现文件系统安全操作的装置,包括:
[0024]目录创建单元,用于在操作系统启动之前,为第一原目录创建第一副本目录,所述第一原目录位于磁盘的只读分区,所述第一副本目录位于磁盘的读写分区;
[0025]目录绑定单元,用于在操作系统启动时,将所述第一副本目录与所述第一原目录进行绑定,以使得在操作系统运行时,当对所述第一原目录进行操作时,实际是对所述第一副本目录进行操作;
[0026]状态设置单元,用于在绑定完毕后,将所述只读分区从读写状态重新设置为只读状态,并维持所述读写分区的读写状态,以使得重新设置后的所述第一原目录只支持读操作,所述第一副本目录同时支持读操作和写操作。
[0027]优选的,所述装置还包括:
[0028]操作单元,用于在操作系统运行时,响应于对所述第一原目录的操作请求,对与所述第一原目录绑定的所述第一副本目录进行操作。
[0029]优选的,所述目录绑定单元具体用于,将所述第一副本目录挂载到所述第一原目录上。
[0030]优选的,所述目录绑定单元包括:
[0031]触发执行子单元,用于响应于对文件系统的启动请求,触发执行启动脚本;
[0032]挂载子单元,用于在执行所述启动脚本时,根据所述启动脚本的逻辑顺序,将所述第一副本目录挂载到所述第一原目录上。
[0033]优选的,所述文件系统为Linux文件系统,所述第一原目录为Linux文件系统中根目录下的etc目录。
[0034]由上述实施例可以看出,与现有技术相比,本发明的优点在于:
[0035]在操作系统启动之前,在磁盘的读写分区为位于只读分区的第一原目录创建副本目录,即,第一副本目录。并在操作系统启动时,先将第一副本目录与第一原目录进行绑定,再将只读分区从读写状态设置为只读状态,并维持所述读写分区的读写状态。这样,在操作系统运行时,由于绑定关系,当对第一原目录进行操作时,实际是对所述第一副本目录进行操作。而第一副本目录位于读写分区,因此,就可以实现对第一副本目录进行读操作和写操作。而在只读分区中,除了第一原目录之外的其它目录仍然仅支持读操作,保证了这部分目录中的文件在操作上的安全性。
【专利附图】
【附图说明】
[0036]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0037]图1示意性地示出了 Linux文件系统的目录结构的树型图;
[0038]图2示意性地示出了本发明的实施方式可以在其中实施的示例性应用场景;
[0039]图3示意性地示出了本发明一种实现文件系统安全操作的方法的一个实施例的流程图;
[0040]图4示意性地示出了本发明一种目录挂载方法的流程图;
[0041]图5示意性地示出了本发明一种实现文件系统安全操作的装置的一个实施例的结构框图;
[0042]图6示意性地示出了本发明一种目录绑定单元的结构框图。
【具体实施方式】
[0043]在本发明中,请参阅图2所示,磁盘20被划分为至少两个分区:只读分区21和读写分区22。在Linux操作系统启动后且运行时,只读分区21处于只读状态,读写分区22处于读写状态。这样,位于只读分区21中的目录可以支持读操作而不支持写操作,位于读写分区22中的目录可以同时支持读操作和写操作。例如,可以将Linux文件系统中对安全操作要求高的文件存储在只读分区21中,如,将根目录下的etc目录存储在只读分区21中,使得根目录下的etc目录仅支持读操作而不支持写操作,将Linux文件系统中对安全操作要求低或者没有安全操作要求的目录存储在读写分区22中,使得位于读写状态分区22中的目录可以同时支持读操作和写操作。
[0044]但是,在某种应用需求下,仍然可能需要对位于只读分区21中的某个目录中文件(如根目录下的etc目录中的文件)进行读操作和写操作。显然,位于只读分区21中的所有目录只支持读操作而不支持写操作。
[0045]本发明实施例提供了实现文件系统安全操作的方法和装置。在本发明的实施例中,如果在Linux操作系统运行时需要对只读分区21中的任意一个目录211同时进行读操作和写操作,如图1所示,在Linux操作系统启动时,在读写分区22中为该根目录下的etc目录211创建一个副本目录221,并将该副本目录221与其原目录211进行绑定,以使得在Linux操作系统运行时,当对该副本目录221的原目录211进行操作时,实际是对该副本目录221进行操作。而由于副本目录221位于读写分区22中,因此,可对副本目录221同时进行读操作和写操作,即,相当于对只读分区21中的目录211进行了读操作和写操作。另夕卜,位于只读分区21中的除目录211之外的其它目录,仍然仅支持读操作而不支持写操作,其文件在操作上的安全性并没有受到任何影响。
[0046]为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明实施例进行详细描述。
[0047]方法实施例
[0048]请参阅图3,图3示意性地示出了本发明一种实现文件系统安全操作的方法的一个实施例的流程图,该方法包括以下步骤:
[0049]步骤301:在操作系统启动之前,为第一原目录创建第一副本目录,所述第一原目录位于磁盘的只读分区,所述第一副本目录位于磁盘的读写分区。
[0050]以第一原目录为根目录下的etc目录为例,其中,根目录下的etc目录只位于只读分区中,而并不位于读写分区中。在操作系统启动之前,先在读写分区中创建一个空的根目录下的etc目录,然后将位于只读分区的根目录下的etc目录中的文件拷贝到位于读写分区的根目录下的etc目录中。这样,在只读分区和读写分区都存在一个根目录下的etc目录。
[0051]步骤302:在操作系统启动时,将所述第一副本目录与所述第一原目录进行绑定,以使得在操作系统运行时,当对所述第一原目录进行操作时,实际是对所述第一副本目录进行操作。
[0052]在本发明的一个优选实施方式中,将所述第一副本目录与所述第一原目录进行绑定具体可以为:将所述第一副本目录挂载到所述第一原目录上。这样,在操作系统运行时,当对所述第一原目录进行操作时,实际是对所述第一副本目录进行操作。
[0053]其中,在文件系统刚刚启动的时候,整个磁盘处于读写状态,S卩,无论是磁盘的只读分区,还是读写分区,都处于读写状态。此时,可以对第一副本目录和第一原目录实施上述挂载动作。
[0054]在本发明的另一个优选实施方式中,如图4所示,将所述第一副本目录挂载到所述第一原目录上可以包括以下步骤:
[0055]步骤401:响应于对文件系统的启动请求,触发执行启动脚本;
[0056]步骤402:在执行所述启动脚本时,根据所述启动脚本的逻辑顺序,将所述第一副本目录挂载到所述第一原目录上。
[0057]可以理解的,通过修改启动脚本,在启动脚本中添加有关将第一副本目录挂载到第一原目录上的代码。当执行到启动脚本的该代码段时,即实施相应的挂载动作。
[0058]步骤303:在绑定完毕后,将所述只读分区从读写状态重新设备为只读状态,并维持所述读写分区的读写状态,以使得重新设置后的所述第一原目录只支持读操作,所述第一副本目录同时支持读操作和写操作。
[0059]可以理解的,当绑定完毕后,再按照对文件系统安全操作的要求,将只读分区从读写状态重新设备为只读状态,并维持所述读写分区的读写状态。这样可以保证位于只读分区中的所有目录仅支持读操作,而位于读写分区的所有目录可同时支持读操作和写操作。
[0060]在本发明的一个优选实施方式中,所述操作系统为Linux操作系统。
[0061]在本发明的另一个优选实施方式中,所述文件系统为Linux文件系统,所述第一原目录为Linux文件系统中根目录下的etc目录。
[0062]当然,需要说明的是,本发明的技术方案并不仅局限于Linux文件系统,也同样适用于其它文件系统,如,DOS文件系统和Window文件系统。其中,DOS文件系统和Window文件系统的目录结构也为树型结构。与Linux文件系统不同,在DOS文件系统或Windows文件系统中,有几个磁盘分区就有几个树型的目录结构,各个磁盘分区之间的关系是并列的;但在Linux文件系统中,无论有几个磁盘分区,只有一个树型的目录结构,从结构上来说,各个磁盘分区之间的关系并不一定是并列的。
[0063]在本发明的另一个优选实施方式中,在操作系统运行时,响应于对所述第一原目录的操作请求,对与所述第一原目录绑定的所述第一副本目录进行操作。
[0064]由上述实施例可以看出,与现有技术相比,本发明的优点在于,
[0065]在操作系统启动之前,在磁盘的读写分区为位于只读分区的第一原目录创建副本目录,即,第一副本目录。并在操作系统启动时,先将第一副本目录与第一原目录进行绑定,再将只读分区从读写状态设置为只读状态,并维持所述读写分区的读写状态。这样,在操作系统运行时,由于绑定关系,当对第一原目录进行操作时,实际是对所述第一副本目录进行操作。而第一副本目录位于读写分区,因此,就可以实现对第一副本目录进行读操作和写操作。而在只读分区中,除了第一原目录之外的其它目录仍然仅支持读操作,保证了这部分目录中的文件在操作上的安全性。
[0066]装置实施例
[0067]与上述一种实现文件系统安全操作的方法相对应,本发明实施例还提供了一种实现文件系统安全操作的装置。请参阅图5,图5示意性地示出了本发明一种实现文件系统安全操作的装置的一个实施例结构框图,该装置包括:目录创建单元501、目录绑定单元502和状态设置单元503。下面结合该装置的工作原理进一步介绍其内部结构以及连接关系。
[0068]目录创建单元501,用于在操作系统启动之前,为第一原目录创建第一副本目录,所述第一原目录位于磁盘的只读分区,所述第一副本目录位于磁盘的读写分区;
[0069]目录绑定单元502,用于在操作系统启动时,将所述第一副本目录与所述第一原目录进行绑定,以使得在操作系统运行时,当对所述第一原目录进行操作时,实际是对所述第一副本目录进行操作;
[0070]状态设置单元503,用于在绑定完毕后,将所述只读分区从读写状态重新设置为只读状态,并维持所述读写分区的读写状态,以使得重新设置后的所述第一原目录只支持读操作,所述第一副本目录同时支持读操作和写操作。
[0071]在本发明的另一个优选实施方式中,该装置还包括:操作单元,用于在操作系统运行时,响应于对所述第一原目录的操作请求,对与所述第一原目录绑定的所述第一副本目录进行操作。
[0072]在本发明的另一个优选实施方式中,目录绑定单元502具体用于,将所述第一副本目录挂载到所述第一原目录上。
[0073]在本发明的另一个优选实施方式中,如图6所示,目录绑定单元502包括:
[0074]触发执行子单元5021,用于响应于对文件系统的启动请求,触发执行启动脚本;
[0075]挂载子单元5022,用于在执行所述启动脚本时,根据所述启动脚本的逻辑顺序,将所述第一副本目录挂载到所述第一原目录上。
[0076]在本发明的一个优选实施方式中,所述操作系统为Linux操作系统。
[0077]在本发明的另一个优选实施方式中,所述文件系统为Linux文件系统,所述第一原目录为Linux文件系统中根目录下的etc目录。
[0078]由上述实施例可以看出,与现有技术相比,本发明的优点在于,
[0079]在操作系统启动之前,在磁盘的读写分区为位于只读分区的第一原目录创建副本目录,即,第一副本目录。并在操作系统启动时,先将第一副本目录与第一原目录进行绑定,再将只读分区从读写状态设置为只读状态,并维持所述读写分区的读写状态。这样,在操作系统运行时,由于绑定关系,当对第一原目录进行操作时,实际是对所述第一副本目录进行操作。而第一副本目录位于读写分区,因此,就可以实现对第一副本目录进行读操作和写操作。而在只读分区中,除了第一原目录之外的其它目录仍然仅支持读操作,保证了这部分目录中的文件在操作上的安全性。
[0080]所述领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0081]在本发明所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述到的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性、机械或其它的形式。
[0082]所述作为分离部件说明的单元可以是或者也可以是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0083]另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,可以采用软件功能单元的形式实现。
[0084]需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存储记忆体(Random Access Memory, RAM)等。
[0085]以上对本发明所提供的实现文件系统安全操作的方法和装置进行了详细介绍,本文中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在【具体实施方式】及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
【权利要求】
1.一种实现文件系统安全操作的方法,其特征在于,包括: 在操作系统启动之前,为第一原目录创建第一副本目录,所述第一原目录位于磁盘的只读分区,所述第一副本目录位于磁盘的读写分区; 在操作系统启动时,将所述第一副本目录与所述第一原目录进行绑定,以使得在操作系统运行时,当对所述第一原目录进行操作时,实际是对所述第一副本目录进行操作; 在绑定完毕后,将所述只读分区从读写状态重新设置为只读状态,并维持所述读写分区的读写状态,以使得重新设置后的所述第一原目录只支持读操作,所述第一副本目录同时支持读操作和写操作。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括: 在操作系统运行时,响应于对所述第一原目录的操作请求,对与所述第一原目录绑定的所述第一副本目录进行操作。
3.根据权利要求1所述的方法,其特征在于,所述将所述第一副本目录与所述第一原目录进行绑定,以使得在操作系统运行时,当对所述第一原目录进行操作时,实际是对所述第一副本目录进行操作为: 将所述第一副本目录挂载到所述第一原目录上。
4.根据权利要求3所述的方法,其特征在于,所述将所述第一副本目录挂载到所述第一原目录上,包括: 响应于对文件系统的启动请求,触发执行启动脚本; 在执行所述启动脚本时,根据所述启动脚本的逻辑顺序,将所述第一副本目录挂载到所述第一原目录上。
5.根据权利要求1至4中任意一项所述的方法,其特征在于,所述文件系统为Linux文件系统,所述第一原目录为Linux文件系统中根目录下的etc目录。
6.一种实现文件系统安全操作的装置,其特征在于,包括: 目录创建单元,用于在操作系统启动之前,为第一原目录创建第一副本目录,所述第一原目录位于磁盘的只读分区,所述第一副本目录位于磁盘的读写分区; 目录绑定单元,用于在操作系统启动时,将所述第一副本目录与所述第一原目录进行绑定,以使得在操作系统运行时,当对所述第一原目录进行操作时,实际是对所述第一副本目录进行操作; 状态设置单元,用于在绑定完毕后,将所述只读分区从读写状态重新设置为只读状态,并维持所述读写分区的读写状态,以使得重新设置后的所述第一原目录只支持读操作,所述第一副本目录同时支持读操作和写操作。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括: 操作单元,用于在操作系统运行时,响应于对所述第一原目录的操作请求,对与所述第一原目录绑定的所述第一副本目录进行操作。
8.根据权利要求6所述的装置,其特征在于,所述目录绑定单元具体用于,将所述第一副本目录挂载到所述第一原目录上。
9.根据权利要求8所述的装置,其特征在于,所述目录绑定单元包括: 触发执行子单元,用于响应于对文件系统的启动请求,触发执行启动脚本; 挂载子单元,用于在执行所述启动脚本时,根据所述启动脚本的逻辑顺序,将所述第一副本目录挂载到所述第一原目录上。
10.根据权利要求6至9中任意一项所述的装置,其特征在于,所述文件系统为Linux文件系统,所述第一原目录为Linux文件系统中根目录下的etc目录。
【文档编号】G06F21/10GK104392189SQ201410773719
【公开日】2015年3月4日 申请日期:2014年12月12日 优先权日:2014年12月12日
【发明者】陈义攀 申请人:北京元心科技有限公司