⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tlsa讲义06章.txt

📁 turbolinux的全部课件
💻 TXT
📖 第 1 页 / 共 3 页
字号:

第六章 文件系统管理
        Linux文件系统是符合FHS(Filesystem Hierarchy Standard)标准的分层的存储结构。由唯一的根目录和其他目录、文件组成,系统所有的磁盘、目录和文件都是挂接在文件系统上。分层的树形结构在深度和广度上没有限制,也能通过网络包含其他操作系统上的磁盘和文件。

第六章 文件系统管理
        Linux中的文件概念比其他操作系统更丰富:在Linux中一切都是文件。物理设备的访问使用的是特殊的文件名,内存和当前运行的程序也可以通过文件系统来访问
	顶级目录有:/bin,/etc,/home,/tmp,/var,/proc,/dev,/boot, /usr,/sbin

第六章 文件系统管理
        几个重要的二级目录
	/etc/default,/etc/init.d,/etc/rc*.d,/usr/lib,/usr/share,
	

6.1 文件和目录
        Linux 的一个最重要的特点之一是它可以支持许多不同的文件系统。这让它非常灵活,可以和许多其他操作系统共存。 
	在 Linux 中,象 Unix 一样,系统可以使用的不同的文件系统,不是通过设备标识符(例如驱动器编号或设备名称)访问,而是连接成一个单一的树型的结构,
用一个统一的单个实体表示文件系统。

6.1 文件和目录
         Linux 在文件系统安装的时候把它加到这个单一的文件系统树上。所有的文件系统,不管什么类型,都安装在一个目录,安装的文件系统的文件掩盖了这个目录原来存在的内容。这个目录叫做安装目录或安装点。当这个文件系统卸载的时候,安装目录自己的文件又可以显现出来。 

6.1 文件和目录
        另外,使用 Linux 的文件系统,是否这些不同的文件系统在不同的物理介质上都是无关紧要的。文件系统甚至可能不在本地系统上,它可能是通过网络连接远程安装的。 
	
	

6.1 文件和目录
        linux文件系统使用索引节点来记录文件信息,作用像windows的文件分配表。
索引节点是一个结构,它包含了一个文件的长度、创建及修改时间、权限、所属关系、磁盘中的位置等信息。一个文件系统维护了一个索引节点的数组,每个文件或目录都与索引节点数组中的唯一一个元素对应。系统给每个索引节点分配了一个号码,也就是该节点在数组中的索引号,称为索引节点号。 

6.1 文件和目录
        linux文件系统将文件索引节点号和文件名同时保存在目录中。所以,目录只是将文件的名称和它的索引节点号结合在一起的一张表,目录中每一对文件名称和索引节点号称为一个连接。 
	
	

6.1 文件和目录
        ls -l
	对于第一部分表示文件的类型,在linux下一共有七种文件类型,包括套接字(s),符号链接文件(l),普通文件(-),块设备文件(b),目录(d),字符设备(c)和命名管道(P) (括号中是文件在权限位上的表示符)。 
	

6.1 文件和目录
        剩下三部份结构类似,都是用三个字符(rwx)表示。 r对应的是读权限,w对应的是写权限,x对应的是有运行的权限。 对于这三部分我们都可以用三位二进制或一位八进制数来表示,当某一位使能时就把这一位符值为1,如rw-就表示读和写位使能,对应的位赋1,所以在这种情况下可以用二进制110或八进制6表示。 

6.1 文件和目录
        当我们要改变文件权限时既可以用字符方式,又可以用八进制数的方式。 
改变文件权限的命令是chmod。用字符方式的话,其中u代表拥有者,g代表用户组,o代表其他用户和a代表所有人。 
	
	

6.1 文件和目录
        文件的访问权限r,w,x
	
	目录的访问权限r,w,x
	
	t,s
	

6.1 文件和目录
        对于一个目录,如果设置了“read”标志,您可以列出目录的内容;“write”表示您可以在目录中创建文件,“execute”表示您可以进入该目录并访问内部的任何子目录。没有“execute”标志,目录内的文件系统对象是不可访问的。没有“read”标志,目录内的文件系统对象是不可查看的,但是只要有人知道磁盘上对象的完整路径,就仍然可以访问目录内的对象。
	

6.1 文件和目录
        目录上的粘滞位。当你运行下面的命令时 
ls -ld /tmp/ 
drwxrwxrwt 10 root root 4096 4月 7 11:02 /tmp/ 
在权限位中第三部份的最后一位是t,这一权限位的名字叫粘滞位 (sticky bit)。这种权限主要是在目录上出现,它是使用户在这个目录里只能删除属于自己的文件,而不能删除其他人的文件。 

6.1 文件和目录
        另外还有SUID或SGID,这两个权限位主要是设定用户或用户组的运行ID。SUID功能是当用户(不一定是该文件的拥有者)执行SUID文件时, 这个文件有效用户号(UID)就会被设定为该文件拥有者的用户号(UID);对于GUID,类似SUID当用户(不一定是该文件的用户组成员)这行SGID文件时,这个文件的有效用户组号(GID)就会被设定为该文件的用户组号(GIU)。

6.1 文件和目录
        最初登录时,将启动一个新的 shell 进程。这个新的 shell 进程(通常是 bash)使用用户的用户标识运行。这样,bash 程序可以访问所有属于用户的文件和目录。事实上,作为用户,我们完全依靠其它程序来代表我们执行操作。因为启动的程序继承了我们的用户标识,因此它们不能访问任何不允许我们访问的文件系统对象: 


6.1 文件和目录
        例如,一般用户不能直接修改 passwd 文件,因为“write”标志已经对除“root 用户”以外的每个用户关闭: 


$ ls -l /etc/passwd 
-rw-r--r-- 1 root root 996 3月 29 11:05 /etc/passwd

6.1 文件和目录
        但是,一般用户确实需要在他们需要改变其密码的任何时候,能够修改 /etc/passwd(至少间接地)。但是,如果用户不能修改该文件,究竟怎样完成这个工作呢  

	ls –l /usr/bin/passwd
	

6.1 文件和目录
        这里有一个 s 取替了用户权限三元组中的一个 x。这表明,对于这个特殊程序,设置了 suid 和可执行位。由于这个原因,当 passwd 运行时,它将代表 root 用户执行(具有完全超级用户访问权),而不是代表运行它的用户运行。又因为 passwd 以 root 用户访问权运行,所以能够修改 /etc/passwd 文件,而没有什么问题。

6.1 文件和目录
        我们看到了 suid 怎样工作,sgid 以同样的方式工作。它允许程序继承程序的组所有权,而不是当前用户的程序所有权。 

这里有一些关于 suid 和 sgid 的其它的但是很重要的信息。首先,suid 和 sgid 占据与 ls -l 清单中 x 位相同的空间。如果还设置了 x 位,则相应的位表示为 s(小写)。但是,如果没有设置 x 位,它将表示为 S(大写)。

6.1 文件和目录
        设置和除去 suid 与 sgid 位相当简单。这里,我们设置 suid 位: 

# chmod u+s /usr/bin/myapp 

此处,我们从一个目录除去 sgid 位。 

# chmod g-s /home/cccc 


6.1 文件和目录
        如果启用了目录的“sgid”标志,在目录内创建的任何文件系统对象将继承目录的组。当您需要创建一个属于同一组的一组人使用的目录树时,这种特殊的功能很管用。只需要这样做: 


# mkdir /home/groupdir 
# chgrp mygroup /home/groupdir 
# chmod g+s /home/groupdir 


6.1 文件和目录
        setuid和setgid要注意安全性。
	查找有s位的命令:
	   find / -type f  \( -perm –4000 –o –perm –2000 \)

6.1 文件和目录
        
	第一位数用来设置 sticky、suid 和 sgid 位: 

suid sgid sticky 模式数字 

	
	

6.1 文件和目录
        chown和chgrp用来改变一个文件的所有者或它的组。
	chown [-R] Owner File
	chown 命令将 File 参数指定的文件的所有者更改为 Owner 参数指定的用户。Owner 参数的值可以是可在/etc/passwd 文件中找到的用户标识或登录名。

6.1 文件和目录
        chgrp [-R] Group File
	
	只有 root 用户可以更改文件的所有者。只在您是 root 用户或拥有该文件的情况下才可以更改文件的组。如果拥有文件但不是 root 用户,则只可以将组更改为您是其成员的组。
	

6.1 文件和目录
        对于一个文件来说有唯一的索引节点号与之对应,对于一个索引节点号,却可以有多个文件名与之对应。因此,在磁盘上的同一个文件可以通过不同的路径去访问它。
可以用ln命令对一个已经存在的文件再建立一个新的连接,而不复制文件的内容。
连接有软连接和硬连接之分,软连接又叫符号连接。它们各自的特点是:


	

6.1 文件和目录
        硬连接:原文件名和连接文件名都指向相同的物理地址。
目录不能有硬连接;硬连接不能跨越文件系统(不能跨越不同的分区)
文件在磁盘中只有一个拷贝,节省硬盘空间;
由于删除文件要在同一个索引节点属于唯一的连接时才能成功,因此可以防止不必要的误删除。



	

6.1 文件和目录
        符号连接:用ln -s命令建立文件的符号连接
符号连接是linux特殊文件的一种,作为一个文件,它的数据是它所连接的文件的路径名。类似windows下的快捷方式。
可以删除原有的文件而保存连接文件,没有防止误删除功能。
	

6.1 文件和目录
        ln [-snf] file target
	ln 命令将在file参数中指定的文件链接到在target参数中指定的文件。在缺省情况下,ln 命令会创建硬链接。如果需要使用 ln 命令来创建符号链接,请指明 -s 标志。
	

6.1 文件和目录
        符号链接是指向文件的一个间接指针;它的目录项中包含了它所链接的文件名。符号链接可能会跨越文件系统,可能指向目录。
	如果正在将某个文件链接到新的名字,那么只能列出一个文件。如果链接到一个目录,那么可以列出多个文件。
	TargetFile 参数是可选的。如果不指定目标文件,ln 命令会在当前的目录中创建一个新的文件。新的文件继承了指定在 file 参数中的文件名。

6.1 文件和目录
        -f使 ln 命令替换掉任何已经存在的目的路径。如果目的路径已经存在,而没有指定 -f 标志,ln 命令不会创建新的链接,而是向标准错误写一条诊断消息。
	-n指定,如果链接是一个现有的文件,那么不要覆盖文件的内容。

6.1 文件和目录
        -s促使 ln 命令创建符号链接。符号链接中包含了它所链接的文件的名字。当对链接执行打开操作的时候,会使用到引用文件。符号链接可能跨越文件系统,指向目录。 

6.1 文件和目录
        查看连接
	ls  [-i|-l|-L]
	

6.2 文件系统
        常见文件系统类型。
	minix,ext,ext2,ext3,xiafs,reiserfs,msdos,umsdos,vfat,proc,iso9660,nfs,smb,ncpfs,swap
	Linux支持数量众多的本地文件系统类型和几种通过网络访问远程磁盘的文件系统,分析/proc/filesystems文件的内容即可找出当前Linux内核提供了对哪些文件系统的支持。
	Linux默认直接支持的文件系统是ext2文件系统

6.2 文件系统
        ext2文件系统和其他
现代Unix使用的文件系统非常相似,但更接近于BSD系统所用的Berkeley Fast Filesystem。ext2文件系统的最大容量
是4 TB,但目前它的最大文件大小被Linux内核限制为2 GB
	

6.2 文件系统
        ext2的核心是两个内部数据结构,即superblock和inode。superblock是一个包含文件系统重要信息的表格,比如
标签、大小、inode的数量等,它是对文件系统结构的基础性的、全局性的描述。因此,没有了superblock的文件系统
将不再可用。由于这个原因,文件系统中不同位置存放着superblock的多个副本。

6.2 文件系统
        inode是基本的文件级数据结构,文件系统中的每一个文件都可以在其中一个inode中找到其描述。inode描述的文件信息包括:文件的创建和修改时间,文件大小,实际存放文件数据的块列表,等等。对于较大的文件,块列表可能包含附加数据块列表的磁盘位置(称为间接块),甚至有可能出现二重或三重的间接块列表。文件名字通过目录项
(Directory Entry)关联到inode,目录项由“文件名字-inode”对构成。

6.2 文件系统
        对于 ext2 文件系统来说,硬盘分区首先被划分为一个个的 block,一个 ext2 文件系统上的每个 block 都是一样大小的,但是对于不同的 ext2 文件系统,block 的大小可以有区别。典型的 block 大小是 1024 bytes 或者 4096 bytes。这个大小在创建 ext2 文件系统的时候被决定,它可以由系统管理员指定,也可以由文件系统的创建程序根据硬盘分区的大小,自动选择一个较合理的值。这些 blocks 被聚在一起分成几个大的 block group。每个 block group 中有多少个 block 是固定的。

6.2 文件系统
        文件系统是LUNIX系统中的文件,目录,以及对这些文件和目录进行管理的数据结构的总称。LUNIX文件系统包括引导块、超级块、i节点区、文件存储区等几部分
	引导块占用第0号物理块,不属于文件系统管辖,如果系统中有多个文件系统,只有根文件系统才有引导程序放在引导块中,其余文件系统都不使用引导块

6.2 文件系统
        超级块占用第1号物理块,是文件系统的控制块,超级块包括:文件系统的大小、空闲块数目、空闲块索引表、空闲i节点数目、空闲i节点索引表、封锁标记等。超级块是系统为文件分配存储空间、回收存储空间的依据
	由于超级块包含了许多关键数据,因此,必须要备份。备份是在文件系统创建时产生的。

6.2 文件系统
        而i节点是对文件进行控制和管理的一种数据结构。一个文件对应一个i节点,每个i节点都有一个唯一的i节点号,i节点由64个字节组成,保存了文件的属性和类型、存放文件内容的物理块地址、最近一次的存取时间、最近一次的修改时间、创建此文件的时间。要注意哦:i节点中并不包括文件名,文件名和文件占用的i节点的i节点号放在目录文件的目录项中
	

6.2 文件系统
        文件存储区是存放文件内容的区域,文件存储区中各数据块的使用情况在超级块中由记录,系统利用超级块中的记录完成对数据块的分配和回收
	
	查看文件系统的信息(大部分来自超级块)
	   tune2fs –l /dev/xxx

6.2 文件系统
        ext2的设计者主要考虑的是文件系统性能方面的问题。ext2在写入文件内容的同时并没有同时写入文件的meta-data(和文件有关的信息,例如:权限、所有者以及创建和访问时间)。换句话说,Linux先写入文件的内容,然后等到有空的时候才写入文件的meta-data。这样若出现写入文件内容之后但在写入文件的meta-data之前系统突然断电,就可能造成在文件系统就会处于不一致的状态。在一个有大量文件操作的系统中出现这种情况会导致很严重的后果。
	

6.2 文件系统
        日志文件系统比传统的文件系统安全,因为它用独立的日志文件跟踪磁盘内容的变化。就像关系型数据库(RDBMS),日志文件系统可以用事务处理的方式,提交或撤消文件系统的变化。Linux系统缺少日志式文件系统是限制推广其在企业级应用的一个重要制约因素。
	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -