网络安全 频道

企业安全分享:Linux文件系统安全攻略

  【IT168 技术】Linux 支持的文件系统种类繁多,他们为用户的数据存储和管理提供了良好的操作和使用界面。在文件系统中,存在着文件 / 目录访问权限管理和控制、加密文件系统等的安全机制和问题需要考虑,本文将详细介绍保证 Linux 文件系统安全的技术和方法。

  Linux 中的文件系统类型

  随着 Linux 的不断发展,其所能支持的文件格式系统也在迅速扩充。特别是 Linux2.6 内核正式推出后,出现了大量新的文件系统,其中包括日志文件系统 Ext4、Ext3、ReiserFS、XFS、JFS 和其他文件系统。Linux 系统核心可以支持十多种文件系统类型:JFS、ReiserFS、Ext、Ext2、Ext3、ISO9660、XFS、Minx、MSDOS、UMSDOS、VFAT、NTFS、HPFS、NFS、SMB、SysV、PROC 等。

  文件系统安全性对比

  从自动修复损坏的文件系统来看,ext2、ext3 都能自动修复损坏的文件系统,也都是在开机时进行。ext2 和 ext3 文件系统在默认的情况下是“每间隔 21 次挂载文件系统或每 180 天,就要自动检测一次。通过实践来看 ext2 和 ext3 在自动检测上是存在风险,有时文件系统开机后就进入单用户模式,并且把整个系统“扔”进 lost+found 目录,如果要恢复系统,就得用 fsck 来进行修复;当然 fsck 也同样存在风险;所以对 ext2 和 ext3 文件系统的使用,对新手来说的确需要心里准备;毕竟修复已经损坏的 ext2 和 ext3 文件系统是有困难的;另外 ext2 和 ext3 文件系统对于意外关机和断电,也可能导致文件系统损坏,所以我们在使用过程中,必须是合法关机;比如执行 poweroff 指令来关掉机器。

  从文件系统的反删除来看,ext2 支持反删除,对于一般使用者来说应该是安全的,但对于保密单位来说可能意味着不安全。从反删除角度来说明文件系统的安全性,也是有两方面。如果用户的工作是从事比较机密的,用 ext3 比较好,因为 ext3 一旦删除文件,是不可恢复的,因为反删除能恢复相应的绝秘资料的泄秘,所以 ext3 可能更适合从事机密工作的用户。

  新型的 Ext4 文件系统

  Ext4 是 Linux 内核版本 2.6.28 的重要部分。它是 Linux 文件系统的一次革命。在很多方面,Ext4 相对于 Ext3 的进步要远超过 Ext3 相对于 Ext2 的进步。Ext3 相对于 Ext2 的改进主要在于日志方面,但是 Ext4 相对于 Ext3 的的改进是更深层次的,是文件系统数据结构方面的优化。一个高效的、优秀的、可靠的和极具特点的文件系统就此诞生。目前,该文件系统并未在所有的 Linux 发行套件中完全普及使用,还处于初期的测试阶段。

  安全设定文件 / 目录访问权限

  Linux 系统中的每个文件和目录都有访问许可权限,通过其确定谁可以通过何种方式对文件和目录进行访问和操作。下面将对文件 / 目录访问的方法和命令进行介绍。

  文件或目录的访问权限分为只读,只写和可执行三种。以文件为例,只读权限表示只允许读其内容,而禁止对其做任何的更改操作;只写权限允许对文件进行任何的修改操作;可执行权限表示允许将该文件作为一个程序执行。文件被创建时,文件所有者自动拥有对该文件的读、写和可执行权限,以便于对文件的阅读和修改。用户也可根据需要把访问权限设置为需要的任何组合。

  有三种不同类型的用户可对文件或目录进行访问:文件所有者,同组用户、其他用户。所有者一般是文件的创建者。它可以允许同组用户有权访问文件,还可以将文件的访问权限赋予系统中的其他用户。在这种情况下,系统中的每一位用户都能访问该用户拥有的文件或目录。

  每一个文件或目录的访问权限都有三组,每组用三位表示,分别为文件属主的读、写和执行权限;与属主同组的用户的读、写和执行权限;系统中其他用户的读、写和执行权限(如图 1 所示)。当用 ls -l 命令显示文件或目录的详细信息时,最左边的一列为文件的访问权限。例如:

  #ls -l sobsrc.tgz

  
-rw-r--r-- 1 root root 483997 Ju1 l5 17:3l sobsrc.tgz

   横线代表空许可(即表示不具有该权限)。r 代表只读,w 代表写,x 代表可执行。注意:这里共有 10 个位置。第 1 个字符指定了文件类型。在通常意义上,一个目录也是一个文件。如果第 1 个字符是横线,表示是一个非目录的文件。如果是 d,表示是一个目录。后面的 9 个字符每三个构成一组,依次表示文件主、组用户、其他用户对该文件的访问权限。

  例如:

  -rw-r--r-- sobsrc.tgz

   表示文件 sobsrc.tgz 的访问权限,说明 sobsrc.tgz 是一个普通文件;sobsrc.tgz 的属主有读写权限;与 sobsrc.tgz 属主同组的用户只有读权限;其他用户也只有读权限。

  确定了一个文件的访问权限后,用户可以利用 Linux 系统提供的 chmod 命令来重新设定不同的访问权限。也可以利用 chown 命令来更改某个文件或目录的所有者。

企业安全分享:Linux文件系统安全攻略
▲图 1. 文件 / 目录访问权限示意图

  1、改变文件 / 目录的访问权限

  chmod 命令用于改变文件或目录的访问权限,它是一条非常重要的系统命令。用户可用其控制文件或目录的访问权限。

  该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。

  文字设定法

  文字设定法的一般使用形式为:chmod [who] [+ | - | =] [mode] 文件名。其中,操作对像 who 可以是下述字母中的任一个或者为各字母的组合:

  • u 表示“用户(user)”,即文件或目录的所有者。
  • g 表示“同组(group)用户”,即与文件属主有相同组 ID 的所有用户。
  • o 表示“其他(others)用户”。
  • a 表示“所有(all)用户”。其为系统默认值。

  操作符号可以是:

  • + 添加某个权限。
  • ~取消某个权限。
  • = 赋予给定权限并取消其他所有权限(如果有的话)。

  设置 mode 所表示的权限可用下述字母的任意组合:

  • r:可读。
  • w:可写。
  • x:可执行。只有目标文件对某些用户是可执行的或该目标文件是目录时才追加 x 属性。
  • s:在文件执行时把进程的属主或组 ID 置为该文件的文件属主。方式“u+s”设置文件的用户 ID 位,“g + s”设置组 ID 位。
  • t:将程序的文本保存到交换设备上。
  • u:与文件属主拥有一样的权限。
  • g:与和文件属主同组的用户拥有一样的权限。
  • o:与其他用户拥有一样的权限。

  如果在一个命令行中可给出多个权限方式,其间用逗号隔开。图 2 给出了使用该设定法的例子:

企业安全分享:Linux文件系统安全攻略
▲图 2. chmod 命令文字设定法使用示例

  首先,设定文件 test1 的属性为:文件属主(u)增加执行权限 ; 与文件属主同组用户(g)增加执行权限;其他用户(o)增加执行权限,其命令为:

  #chmod a+x test1

   接着,设定文件 test2 的属性为:文件属主(u)增加写权限 ; 与文件属主同组用户(g)增加写权限;其他用户(o)删除执行权限,其命令为:

  #chmod ug+w,o-x test2

   最后,对可执行文件 test3 添加 s 权限,使得执行该文件的用户暂时具有该文件拥有者的权限:

  #chmod u+s test3
0
相关文章