免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1092 | 回复: 0
打印 上一主题 下一主题

[SCO UNIX] UNIX的文件系统 [复制链接]

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-01-05 21:38 |只看该作者 |倒序浏览
UNIX的文件系统


文件系统
    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 改变文件的属组
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP