Linux文件系统inode、block解释权限(三)
利用文件系统的inode和block来分析文件(目录)的权限问题。
- 为什么读取一个文件还要看该文件路径所有目录的权限?
- 为什么目录的w权限具有删除文件的能力,而文件w权限不行。
inode:记录文件的属性,一个文件占用一个inode,同时记录了文件数据所在的block号码。Ext3文件系统inode大小为128B,Ext4文件系统inode大小为256B。
block:记录了文件的内容,若文件太大会占用多个bolck块。一般大小为1k、2k、4k。
inode和block在文件系统里,均用号码标示。
如下:
hang@hang:/home$ ll -i
总用量 20
#inode号 #文件大小,这里是一个4k的block块的大小
drwxr-xr-x root root 11月 : ./
drwxr-xr-x root root 11月 : ../
drwxr-xr-x hang hang 11月 : hang/
drwxr-xr-x zncu zncu 11月 : zncu/
drwxrws--- root znha 11月 : znha/
其他更多的文件系统相关不在介绍,总之inode记录了文件/目录的权限和block号码,block记录了文件的实际内容、目录下的文件名以及这些文件名的inode号。
例子:想要读取/etc/passwd,经过了哪些流程。
root@hang:/# ll -di / /etc /etc/passwd
drwxr-xr-x root root 11月 : //
drwxr-xr-x root root 11月 : /etc/
-rw-r--r-- root root 11月 : /etc/passwd
1./的inode: 通过挂载点信息,找到/目录的inode号(2),且该inode具有rwx权限,我们可以读取inode号(2)所记录的block块内容。
2./的block: 在/目录的block内容里找etc/目录的inode号(17301505)
3./etc的inode: /etc的inode(17301505)具有rwx权限,我们可以读取/etc的block块的具体内容。
4./etc的block: 在block块里找到passwd文件的inode(17304397)。
5.passwd的inode: 根据passwd文件的inode(17304397)得知具有读取权限。
6.passwd的block: 根据inode(173044397)所记录的block块读取passwd的具体内容。
可以看到,从根目录一步一步到passwd需要验证每一个目录的权限,如果其中一个目录不具有相应权限,那么这个操作就会失败,如果无法进入/etc目录,何谈读取passwd文件。
也可以得知为什么文件的删除等操作是被目录的w权限控制的,因为w权限可以具有修改block块的能力,目录的block记录了文件名和文件inode,删除文件就是block块存储的文件名和inode,而文件的block记录的是文件具体内容,所以w权限是对文件内容的修改,而不具备删除文件等权限。
http://www.cnblogs.com/yuhanghzsd/p/6109513.html
Linux文件系统inode、block解释权限(三)的更多相关文章
- # linux文件系统(inode block superblock)
先说一下格式化:每种操作系统所设置的文件属性/权限并不相同,为了存放这些文件所需的数据,因此就需要将分区格式化,以成为操作系统能够利用的文件系统格式.linux的文件格式为Ext2/Ext3,现在好像 ...
- Linux 文件系统 -- inode 笔记
什么是 inode inode 的定义:Unix 文件系统中的一种数据结构,用来存储文件的元信息数据 文件在硬盘中的存储是以"块"(block)为单位的,常见的块大小是 4k ...
- linux文件系统的用户和权限管理
1. 为什么要有用户的概念? 多用户,多任务业务对系统资源的隔离产生需求 2. linux 用户的分类? 2.1. 管理员 拥有操作所有文件的权限 2.2. 普通用户 2.2.1. 普通登录用户 2. ...
- linux文件系统下的特殊权限
SUID, SGID, Sticky 1 权限 r, w, x user, group, other 2 安全上下文 前提:进程有属主和属组:文件有属主和属组: (1) 任何一个可执行程序文件能不能启 ...
- 八、linux文件系统上的特殊权限 SUID 、GUID、Sticky
安全上下文 前提:进程有属主和属组,文件有属主和属组 任何一个可执行程序文件能不能启动为进程:取决发起者对程序文件是否拥有执行权限 启动为进程之后,其进程的属主为发起者:进程的属组为发起者所属的组 进 ...
- linux 文件系统(inode和block)
linux文件系统(inode block superblock) 先说一下格式化:每种操作系统所设置的文件属性/权限并不相同,为了存放这些文件所需的数据,因此就需要将分区格式化,以成为操作系统能 ...
- 硬盘分区及Linux文件系统
1. 硬盘物理结构 硬盘物理上主要分为: 盘片 磁道 扇区 机械臂 磁头 主轴 磁道: 当硬盘盘片旋转时,磁头若固定在一个位置上,则磁头会在盘片表面划出一个圆形轨迹,这些圆形轨迹就叫做磁道.以盘片中心 ...
- [apue] linux 文件系统那些事儿
前言 说到 linux 的文件系统,好多人第一印象是 ext2/ext3/ext4 等具体的文件系统,本文不涉及这些,因为研究具体的文件系统难免会陷入细节,甚至拉大段的源码做分析,反而不能从宏观的角度 ...
- Linux文件系统(inode、block……)
内容源于<鸟哥的Linux私房菜> 认识 EXT2 文件系统 文件系统的特殊观察与操作 文件系统 superblock,inode,block superblock,inode,block ...
随机推荐
- Calculate S(n)
Problem Description Calculate S(n). S(n)=13+23 +33 +......+n3 . Input Each line will contain one i ...
- Linux 使用pwgen命令创建随机密码
https://blog.csdn.net/fdipzone/article/details/73864598 http://www.netkou.com/?post=155
- Fast Matrix Calculation 矩阵快速幂
One day, Alice and Bob felt bored again, Bob knows Alice is a girl who loves math and is just learni ...
- TortoiseGit推送失败的问题
网络的SSH修改为使用git默认的ssh客户端,而不是tortosieGit提供的客户端 修改成这样 下面的本机凭证修改为当前用户 然后直接使用右键->git同步 在推送url上填写远程的url ...
- mysql MVCC原理理解
MVCC多版本控制: 指的是一种提高并发的技术.最早的数据库系统,只有读读之间可以并发,读写,写读,写写都要阻塞.引入多版本之后,只有写写之间相互阻塞,其他三种操作都可以并行,这样大幅度提高了Inno ...
- tomcat服务器配置把Http协议强制转化为Https
1)在命令提示符窗口,进入Tomcat目录,执行以下命令: keytool -genkey -alias tomcat -keyalg RSA -keypass changeit -storepass ...
- Memcached启动提示:cann't run as root without the -u switch
如果没有带 -u root 的话就会报: can't run as root without the -u switch 解决方法: 带-u root就行了. 出现的原因: 1.可能在root用户下启 ...
- iOS xmpp协议实现聊天之openfire的服务端配置(二)
本篇主要说一下怎样利用命令行来正确配置MySql. 首先打开终端: 1.为mysql起一个别名 alias mysql=/usr/local/mysql/bin/mysql 2.创建mysql的管理员 ...
- 从理论到实践,全方位认识DNS(理论篇)
对于 DNS(Domain Name System) 大家肯定不陌生,不就是用来将一个网站的域名转换为对应的IP吗.当我们发现可以上QQ但不能浏览网页时,我们会想到可能是域名服务器挂掉了:当我们用别人 ...
- Workspace in use or cannot be created, choose a different one.--错误解决的方法
eclipse 使用一段时间后.有时会由于一些故障自己就莫名奇异的关闭了,再打开时有时没有问题,有时有会提示错误 Workspace Unavailable: Workspace in use or ...