文件系统原理

文件系统
 

UNIX文件系统控制文件和目录中的信息以何种方式存在磁盘及其他辅助介质上。它  
控制每个用户可以访问何种信息及如何访问。因此它是增强UNIX系统安全性的最基本  
的工具之一。  

存储在UNIX文件系统中的信息被安排成目录和文件的树形结构。树形结构由在一个总  
目录中的目录和子目录构成,总目录被称之为根目录(root)。每一个目录内可以包含  
子目录和其他项目,如文件、指向其他文件系统的指针(符号连接)、表示设备的逻  
辑名称(如/dev/tty)以及其他的类型(proc等).  

文件  
UNIX系统中每一个用户可访问的事物均可以被表示为文件系统中的一个“文件”——  
包括进程和网络连接。每一个文件至少具有一个文件名,一个拥有者,以及访问权限  
和其他的属性。这些属性被存放在文件系统的i节点(index node)上,这是基本文件  
系统的条目。i节点存放除文件名外有关文件系统的任何东西。只有文件名存放在目录  
内,并通过指针与i节点联系。  
目录  
目录是文件系统中的一个专门的条目。一个目录实际上是文件名和i节点的列表。文件  
名可以由任意字符的字符串组成,但不能包含/和null字符。  

与文件名相联系的是数字指针,它实际上是一个i节点在磁盘上的索引。一个i节点包  
含文件系统中一个文件条目的信息。  

目录中只包含文件名和i节点索引数,不存放任何需要保护的信息,其作用类似一个  
文件名与i节点之间的映射关系的简单的关系数据库。多个文件可以指向同一个i节点。  
同样多个目录也可以指向同一个i节点。  

rm不一定能真正删除一个文件,当i节点的连接值为0时才真正删除文件。  

每一个目录都包含有. 和 ..两个目录。  

i节点  
UNIX系统中应用一个被称之为i节点(inode)的结构来存储文件系统中的各个级成部分  
的管理信息。i节点驻留在硬盘上,没有自己的名字,但具有索引数,用以指向它们在  
i节点数组中的位置。  

每个i节点通常包括:  
. 该数据条目的内容在磁盘上的位置  
. 该数据条目的类型(文件、目录、符号连接等)  
. 该数据条目的字节数目  
. 该节点最后一次被修改的时间(ctime)  
. 该文件最后一次被修改的时间(mtime)  
. 该文件最后一次被访问的时间(atime)  
. 该文件对应的文件名数目(连接数)  
. UID  
. GID  
. MODE bit  

当前目录和路径  
绝对路径 VS 相对路径  

使用ls命令  
ls -a  
ls -lF (Total行指出了目录中全部文件所占据的KB数。)  
ls -aF (* / = @)  
ls -l (mtime)  
ls -lu (atime)  
ls -lc (ctime)  

文件授权 (ls -l输出)  

*** 可执行位仅对于可执行文件有意义。  

LINUX中必须即拥有执行权限也拥有读权限时才能够执行相个script命令。  

使用chmod命令  

chmod [Rfh] [agou] [+-=] [rwxXstugo] filelist  


权限  
r read  
w write  
x execute(or access for directories)  
X 仅当文件是一个目录或一个已经设备了某些执行位的文件时,设置执行权限  
s set user or group id  
t save program text on swap device(Sticky)  
u 从拥有者的授权中删除访问权  
g 从用户组的授权中删除访问权  
g 从其他用户的授权中删除访问权  

8进制的文件属性  
4000 SUID  
2000 SGID  
1000 sticky  
0400 -r--------  
0200 --w-------  
0100 ---x------  
0040 ----r-----  
0020 -----w----  
0010 ------x---  
0004 -------r--  
0002 --------w-  
0001 ---------x  


umask命令  
umask功能的接口是在sh,ksh,csh shell程序内的一个内在的命令!?
默认文件建立模式: 0666  
计算umask值的一个简便方法:在umask中,2屏蔽写准许位,7屏蔽所有权限。  

使用目录权限  
UNIX将目录的内容存放在普通的文件中。但目录的权限与普通文件有所区别。  

r 读 可用opendir() readdir()或ls找出那个文件在这个目录内  
w 写 可以新建、删除或重命名在这个目录内的文件或子目录  
x 执行 可以stat这个目录的内容(如确定目录的所有者,和在目录中的文件的长  
度). 仅在设置此位时才能使此目录成为当前的目录或打开在该目录(或  
它的子目录)内的文件。  

常用的目录权限  
0755 / /usr/bin 任何人可以看到目录的内容,但只有拥有者和root才能改变它  
1777 /tmp /var/mail 任何用户可以在该目录内建立文件,但不能删除其他用户的  
文件  
0700 $HOME 用户可以访问自己的主目录的内容,但其他用户则不可。  


删除不恰当的文件  

$rm ./-foo  
$rm - -foo  
$rm -i *  

SUID  
passwd su  

SUID/SGID/sticky  
---s------ SUID 执行此SUID的进程的有效UID被设置为程序拥有者的UID  
------s--- SGID  
---------t sticky(一般只用于目录)  
---S------ SUID 设置SUID但不设置相应位的执行位  

*** 不要写SUID的Shell Script, 必要时改用perl(taintperl)  


找到所有的SUID和SGID文件  

find / /( -perm -004000 -o -perm -002000 /) -type f -print  
OR ( Except for NFS )  
find / /( -local -o -prune /) /  
/(-perm -004000 -o -perm -002000 /) -type f -print  

在被mount的文件系统中关闭SUID和SGID  

mount -o nosuid ..... (一般用于NFS)  


设备文件  
设备文件是导致UNIX流行和灵活的原因之一。  
/dev 目录  
/dev/null  
/dev/kmem 伪设备  
/dev/MAKEDEV  

大多数设备文件应不允许普通用户读写.  

非法的设备文件  
不在/dev目录下,可能为非法侵入者提供可利用入口:  
find / /( -type c -o -type b /) -exec ls -l {} /;  

find / /! -type f -a /! -type d -exec ls {} /;  
(包含符号连接,PIPE等)  

chown 改变文件所有者  

chgrp 改变文件的属组

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在这个系列课程中,来自微软的权威技术专家将向您解释Windows操作系统的内部工作原理,从系统架构的大局观出发,逐步展示进程、线程、安全机制、内存管理和存储管理等子系统的工作方式。通过对底层原理的揭示,使您更进一步的理解Windows上各类程序的工作方式和如何进行错误诊断及性能优化。 本次课程的内容编排得到了国内知名技术作家,《Windows Internals》一书的中文译者,潘爱民先生的大力支持,同时TechNet也邀请到了众多微软一线技术专家进行讲解。这是一个为IT专业人员量身定做的Windows内部知识课程,在介绍原理的同时,也紧密地围绕实际案例和常见的故障进行分析点评。这是一个系统的学习Windows底层工作机制的好机会,课程内容深入浅出,精彩纷呈,绝对不容错过。 深入研究Windows内部原理系列之一:Windows的昨天、今天和明天 讲师信息:潘爱民 2007年01月25日 14:00-15:30 Level: 300 著名技术作家、微软亚洲研究院研究员潘爱民老师将在这次课程中跟听众分享Windows的发展历程和技术精萃,描绘操作系统的体系架构、Vista的内核变更以及今后版本Windows的发展趋势。 深入研究Windows内部原理系列之二:Windows体系结构-从操作系统的角度 讲师信息:张银奎 2007年01月26日 14:00-15:30 Level: 400 操作系统是计算机系统的灵魂和管理中心,也是软件系统中最复杂的部分。本讲座将以生动的讲解和丰富的演示带您领略Windows操作系统的核心架构和主要组件,包括HAL、内核、执行体、系统进程(IDLE、SMSS.EXE、WinLogon.EXE)和Windows子系统(CSRSS.EXE、WIN32K.SYS以及子系统DLL)等。并讨论中断管理、对象管理、和异常分发等系统机制和实现这些机制的基本数据结构。 深入研究Windows内部原理系列之三:Windows体系结构-从应用程序的角度 讲师信息:曾震宇 2007年01月29日 14:00-15:30 Level: 400 从服务器软件到Office办公应用,从联网游戏到即时消息,不管这些应用的复杂程度如何,他们都是一个个在操作系统控制和管理之下的可执行程序。本次课程邀请微软全球技术中心专家级工程师,为各位讲解一个程序是如何经历从启动、分配资源、运行、结束这一连串的过程,并且介绍其中的重要概念和排错诊断技巧。 深入研究Windows内部原理系列之四:Windows操作系统中的重要基本概念 讲师信息:高宇 2007年01月30日 14:00-15:30 Level: 400 进程、线程、资源分配、内存管理、Win32 API、服务、安全,这些是工作中常常提及但是又无法深入理解的神秘概念。在这次课程中,讲师将介绍Windows中最常见与最重要的一些基本概念. 使大家能够顺利地参与到本系列之后的讨论中去。 深入研究Windows内部原理系列之五:Windows Sysinternals工具集介绍 讲师信息:彭爱华 2007年01月31日 14:00-15:30 Level: 400 Sysinternals Suite(Windows Sysinternals工具集)包含一系列免费的系统工具,其中有大名鼎鼎的Process Explorer、FileMon、RegMon等(在Windows Vista下,FileMon和RegMon则被Process Monitor所代替),如果把系统管理员比喻成战士的话,那么Sysinternals Suite就是我们手中的良兵利器。熟悉和掌握这些工具,并且对Windows的体系有一定的了解,将大幅度的提高日常的诊断和排错能力。本课程将以任务驱动的模式,介绍几个经典的应用案例,来介绍Sysinternals Suite的强大功能。 深入研究Windows内部原理系列之六:Vista新特性底层揭秘 讲师信息:彭爱华 2007年02月01日 14:00-15:30 Level: 400 Windows Vista绝非仅仅是具有诸如3D切换、毛玻璃等炫目的界面效果,花钱购买了Windows Vista,而仅仅为了使用其界面效果,难免有点“买椟还珠”的感觉。实际上Windows Vista值得称道的是它具有很多全新的安全特性,例如用户帐户控制、IE保护模式、服务隔离和Windows资源保护等等。有了这些全新的安全特性,我们就可以在相当的程度上摆脱恶意软件的滋扰。Windows之父Jim Allchin曾经说过不要满足于只知道How-to、小技巧之类的知识,而是应该深入底层了解其内部原理。只有了解了这些安全特性的内在原理,才

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值