linux 什么是文件系统和文件权限

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_40921797/article/details/82021645

在linux系统中号称“一切皆文件”文件在我们系统中其中很重要的作用。每个文件都有其属性,这些属性都什么意义呢。
首先让我们随便打开一个目录看看文件详细信息都是什么吧~
我们在linux中查看文件纤细信息的命令有:ll 和 ls -l
这里写图片描述
这一行分别是:文件权限,硬链接个数,文件所属者,文件所属组,文件大小,最后修改时间,和文件名。

文件权限

文件的权限
分为3种用户权限:1.文件所属者权限2.文件所属组权限3.其他用户权限
分为3方面权限:1. r 可读 2. w 可写3. x 可执行
注意:针对目录文件来算是可浏览目录,可创建删除目录,可进入目录
修改文件权限

//通过修改文件权限掩码修改文件权限
umask 002
//umask表示创建文件权限掩码
/*rwx表示111,及7,所以一个全权限的文件权限为777表示,
而创建文件时要-减去文件创建权限掩码,及-002=775才是文件权限,
又因为linux下默认创建的文件是没有x可执行权限的所以777-111=666.
也就是在剪切文件创建权限掩码后文件的实际权限是664->rw-rw-r--
*/
//修改创建后的文件的文件权限
chmod   777   文件名 //该文件名对应的文件权限修改为777
chmod    +r    文件名   //该文件名的3种用户权限全部加上可读权限。
chmod +a (3种权限都加上) /  -w(都除去可写权限) 
chmod +t 文件名 //该文件名对应文件可以被该创建用户删除,不可以被其他用户删除。
//如果文件都加上这个权限,意味着你只能删除自己创建的文件了,当然如果你是根root管理员除外。
chown 新所属者 文件名  //改变文件所属者
chgrp 新组名  文件名  //改变文件所属组

什么是文件系统

(来源于百度百科)文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的方法和数据结构。即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等操作,它提供向上的文件操作接口,还提供向下的标准接口供不同文件系统对接。
我的理解就是:文件系统就是一块空间,存储各个文件的属性,和内容数据,他可以有效的管理磁盘,还可以辅助用户对文件进行寻找等操作。
注意:
linux下的文件系统是通过目录树形结构来管理文件的。
其实一台计算机中很分区,每个分区都有一个属于它的文件系统。

文件系统结构

这里写图片描述
超级块:用于存储文件系统全局的配置参数
inode节点位图:inode位图用于描述该块组所管理的inode的分配状态,每个文件都有它对应的inode,inode位图就标记这些inode。
数据存储位图:和inode位图类似用于描述所管理的数据区中空间分配状态。
inode节点区域:用于存储inode信息。比如inode节点号,文件名,文件大小,文件权限,文件时间属性,文件存储指针、地址等。
数据区:这里就类似于扇区,硬盘块用于存储数据。

如何通过文件系统找寻文件

这里写图片描述
1.通过inode节点位图,节点表来找inode节点
2.通过inode找对应文件属性信息,
3.根据找到的路径、指针、地址等信息找到该文件对应的数据区。
4.从而找到文件数据。


部分语言资料来源与网络,因篇幅时间等原因,若写的不完善,欢迎批评指正。谢谢,大佬们了。

猜你喜欢

转载自blog.csdn.net/weixin_40921797/article/details/82021645