2022年Linux文件存取权限 .pdf
《2022年Linux文件存取权限 .pdf》由会员分享,可在线阅读,更多相关《2022年Linux文件存取权限 .pdf(10页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、Linux 文件的存取权限模式位疑难详解张印东一、前言 = 本文主要说明 Linux 下普通文件及目录的存取权限设置。 本文是为稍具基础的初学者写的 ( 我也是 beginner) ,如果您能够理解如下几行 ls -l命令的输出含义 ( 注意下面标注 的位) ,那您就没有必要读本文了别浪费时间看对你没用的东西,时间是最宝贵的!-r-sr-xr-x 1 root bin 26975 Jun 24 1999 01:32 /usr/bin/passwd-1.1 -rwxrwSr-x 1 zyd zyd 12506 Oct 29 10:27 test_euid-1.2 drwxrwxrwt 5 roo
2、t root 1024 Nov 1 17:17 01;34 /tmp-1.3 -rwxr-xr-x 2 zyd zyd 32506 Oct 19 10:20 hard_link-1.4 lrwxr-xr-x 1 zyd zyd 1 Oct 23 10:40 sym_link-/tmp/sym_target-1.5 二、ls -l命令输出格式简介 = 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 10 页 - - - - - - - - - ls -l命令以长格式显示文件
3、列表,其各字段含义如下:lrwxr-xr-x 1 zyd users 15 Oct 23 10:40 sym_link-/tmp/sym_target _ _ _ _ _ _ | | | | | | | | | | | | | | | | | +- 符号连接 (s_link) | | | | | | | | | | | | | | | +-文件名(name) | | | | | | | | | | | | | +-文件最后更改时间 (time) | | | | | | | | | | | +-以字节计的文件长度 (size) | | | | | | | | | +-文件属组 (group) |
4、 | | | | | | +-文件属主 (user) | | | | | +-连接数位 (count) | | | +-文件模式位 (mode), 占 9 位| +-文件类型位 (type),占一位以上 9 个字段中除了 s_link外,其他字段对不同文件和目录都应该有。其中 user 、group、time 和 name的含义自明,本文就不再介绍,其它字段将分专题小节在本文介绍。三、文件类型 (type) Linux支持的文件类型主要包括一下7类,箭头右面的字符就是相应的文件类型位标志: 1 、普通文件 =- 2 、目录文件 =d 3 、符号连接 =l 4 、字符设备文件 =c 5 、块设备
5、文件 =b 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 10 页 - - - - - - - - - 6 、命名管道 FIFO 7 、套接口 socket 其中 FIFO和 socket 超出了本文的范畴, 不做介绍。其它文件简单解释如下: 1 、 普通文件:就是普通文件 ( 废话! ) , 你用vi myfile建立的 myfile就是普通文件,比如可执行二进制代码文件、script脚本文件、ASCII 文本文件、数据文件、配置文件 .就解释到这样行吗? 2 、目录
6、文件:目录可以理解成放其它文件和/ 或其它目录的容器,是一种特殊文件,其内容由目录项组成,每个目录项主要包括两部分内容:文件名name和索引节点号 inode ,两者和起来称为连接,我们将在下小节对inode 进行更详细的介绍。 3 、设备文件:不知道诸位是否有使用DOS 的经验,如果我们的机器只有三个 DOS 系统文件 IO.SYS, MSDOS.SYS, COMMAND.COM,而你需要编辑一份英文文档, 日后再通过打印机输出,你能怎么办? COPY CON MYDOC.TXT ;在此输入文档内容 +D ;结束存盘 COPY MYDOC.TXT PRN ;打印文档如果你熟悉这个过程,那你就
7、已经理解设备文件了。以上的CON 和PRN 分别是 DOS 定义的两个设备文件,分别对应终端和并行打印口。 这种设计使我们不必了解设备使用的具体硬件细节,按使用普通文件相同的方法来使用外部设备。 Linux下的设备文件分为三大类:字符设备、块设备和网络设备,要想准确区别它们可能需要单独写一篇更臭更长的文章,大致情况是:字符设备是直接读取的,不使用缓冲区,象串行口、终端等;而块设备都是通过缓冲区进行读取的,并且每次只能读取一定数量的块,比如磁盘每次至少要读取一个扇区 ( 如 512 字节),块设备可以实现随机读写;网络设备即前面提到的socket ,因为我还不很熟悉,名师资料总结 - - -精品
8、资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 10 页 - - - - - - - - - 就不乱说了。设备文件一般都保存在/dev 目录下,诸位可以用 ls -l 命令看看都有什么?反正本文的重点在于介绍普通文件和目录,设备文件不是重点,所以就只介绍到这里。四、索引节点、硬连接和连接计数 = 1 、索引节点 inode : Linux为每个文件分配一个称为索引节点的号码inode , 可以将 inode简单理解成一个指针,它永远指向本文件的具体存储位置。系统是通过索引节点 ( 而不是文件名 )来
9、定位每一个文件。例如:假设我们在硬盘当前目录下建立了一个名为mytext 文本文件,其内容只有一行: This is my file. 当然这行文字一定是存储在磁盘数据区某个具体位置里( 物理上要通过磁头号、柱面号和扇区号来描述,在本例中假设分别是 1、20、30)。假设其 inode 是 262457,那么系统通过一段标准程序,就能将这个inode 转换成存放此文件的具体物理地址(1 磁头、20柱面、30 扇区),最终读出文件的内容: “This is my file.”所以 inode 是指向一个文件数据区的指针号码, 一个 inode 对应着系统中唯一的一片物理数据区,而位于两个不同物理
10、数据区的文件必定分别对应着两个不同的inode 号码。文件拷贝命令: # cp /home/zyd/mytext newfile 在当前工作目录建立了一个新文件newfile ,其实际操作主要包括如下三步: 1 、在当前目录中增加一个目录项,其文件名域填入newfile ,并分配了一个新的 inode ,假设是 262456。 2 、将原文件 (在 1 磁头、20 柱面、30 扇区) 的内容复制了一份到新的空闲物理块 ( 假设是 1 磁头、 20 柱面、31 扇区) 。 3 、填写一些其他关键信息,使系统通过这些信息及inode 号码可以完成物理地址的转换。所以文件复制要分配新的inode 和
11、新的数据区,虽然两个文件的内容是一样的。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 10 页 - - - - - - - - - 2 、硬连接 hardlink :我们实际使用文件时一般是通过文件名来引用的。通过上面的讨论,我们知道: 1 个 inode 号码肯定和一片完全属于一个文件的数据区一一对应。 那么一个文件系统中两个或更多个不同的文件名能否对应同一个文件呢?答案是肯定的。我们知道inode 号码是记录在文件名对应的目录项中的,我们可以使两个或多个文件的目录项
12、具有相同的 inode 值,实际上就使它们对应着同一个文件。有几个目录项具有相同的 inode 号,我们就说这个文件有几个硬连接 (hardlink),对于普通文件, ls -l命令的连接计数count域的数值就是本文件拥有的硬连接数。硬连接可以通过 ln 命令建立,例如: # ln /home/zyd/mytext hardlink_mytext 就建立了一个新的文件hardlink_mytext,这个文件的 inode 同样是262457。建立硬连接实际上只是增加了一个目录项,但并复制文件数据区, 原文件的数据区由两个文件共享。这一方面能够节约大量磁盘空间,同时可以保证两个文件能同步更新。
13、 ls -il可以显示文件的 inode( 在下面最左边 ) : 262456 -rw-rw-r- 1 zyd zyd 17 Nov 3 14:52 newfile 262457 -rw-rw-r- 2 zyd zyd 17 Nov 3 14:50 hardlink_mytext 262457 -rw-rw-r- 2 zyd zyd 17 Nov 3 14:50 mytext 3 、连接计数 count :前面我们介绍了,文件的连接计数域表明本系统中共有几个文件目录项的 inode 和本文件相同,也就是本文件共有几个硬连接。如上面的例子中hardlink_mytext和 mytext 文件的c
14、ount 值都是 2。那么对于目录,其 count 域的含义是什么呢?目录的count 同样表示共有多少个目录项指向此目录,不过要详细说明必须进一步解释VFS文件系统的结构, 为简单起见, 只要这样理解就行了: (count-2)等于本目录包含的直接子目录数 ( 就是只包括儿子,不包括孙子啦!) 。例如:如果一个目录/abc 的 count 域为 5,那么 /abc目录一定包含 3 个子目录。至此我们已经介绍了普通文件、目录文件、设备文件、硬连接、连接名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - -
15、- - - 第 5 页,共 10 页 - - - - - - - - - 计数、索引节点等非常重要的概念。 4 、进一步说明:硬连接文件实际上并不是一种新的文件类型,两个文件互为对方的硬连接。它们应该都是普通文件(谁能告诉我:其它类型的文件可以硬连接吗?) 。两个文件除了名称或 / 和文件目录不同外,其它部分完全相同,更改了一个文件,另一个的文件长度、内容、更改时间等都将相应发生变化,更改了一个文件的权限位mode ,另一个也会发生同样的变化。注意连接计数字段 count , 互为硬连接的两个文件的count 值都是 2,表明有两个 inode 指向同一文件的 inode 。当我们删除其中一个
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年Linux文件存取权限 2022 Linux 文件 存取 权限
限制150内