利用文件系统的inode和block来分析文件(目录)的权限问题。

  1. 为什么读取一个文件还要看该文件路径所有目录的权限?
  2. 为什么目录的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解释权限(三)的更多相关文章

  1. # linux文件系统(inode block superblock)

    先说一下格式化:每种操作系统所设置的文件属性/权限并不相同,为了存放这些文件所需的数据,因此就需要将分区格式化,以成为操作系统能够利用的文件系统格式.linux的文件格式为Ext2/Ext3,现在好像 ...

  2. Linux 文件系统 -- inode 笔记

    什么是 inode inode 的定义:Unix 文件系统中的一种数据结构,用来存储文件的元信息数据   文件在硬盘中的存储是以"块"(block)为单位的,常见的块大小是 4k ...

  3. linux文件系统的用户和权限管理

    1. 为什么要有用户的概念? 多用户,多任务业务对系统资源的隔离产生需求 2. linux 用户的分类? 2.1. 管理员 拥有操作所有文件的权限 2.2. 普通用户 2.2.1. 普通登录用户 2. ...

  4. linux文件系统下的特殊权限

    SUID, SGID, Sticky 1 权限 r, w, x user, group, other 2 安全上下文 前提:进程有属主和属组:文件有属主和属组: (1) 任何一个可执行程序文件能不能启 ...

  5. 八、linux文件系统上的特殊权限 SUID 、GUID、Sticky

    安全上下文 前提:进程有属主和属组,文件有属主和属组 任何一个可执行程序文件能不能启动为进程:取决发起者对程序文件是否拥有执行权限 启动为进程之后,其进程的属主为发起者:进程的属组为发起者所属的组 进 ...

  6. linux 文件系统(inode和block)

    linux文件系统(inode block superblock)   先说一下格式化:每种操作系统所设置的文件属性/权限并不相同,为了存放这些文件所需的数据,因此就需要将分区格式化,以成为操作系统能 ...

  7. 硬盘分区及Linux文件系统

    1. 硬盘物理结构 硬盘物理上主要分为: 盘片 磁道 扇区 机械臂 磁头 主轴 磁道: 当硬盘盘片旋转时,磁头若固定在一个位置上,则磁头会在盘片表面划出一个圆形轨迹,这些圆形轨迹就叫做磁道.以盘片中心 ...

  8. [apue] linux 文件系统那些事儿

    前言 说到 linux 的文件系统,好多人第一印象是 ext2/ext3/ext4 等具体的文件系统,本文不涉及这些,因为研究具体的文件系统难免会陷入细节,甚至拉大段的源码做分析,反而不能从宏观的角度 ...

  9. Linux文件系统(inode、block……)

    内容源于<鸟哥的Linux私房菜> 认识 EXT2 文件系统 文件系统的特殊观察与操作 文件系统 superblock,inode,block superblock,inode,block ...

随机推荐

  1. HBase单节点的安装与配置

    HBase的安装配置1.下载:http://mirror.bit.edu.cn/apache/hbase/stable/   hbase-1.2.6-bin是直接编译好的,直接安装.   hbase- ...

  2. HDU——1130 How Many Trees?

    How Many Trees? Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)T ...

  3. 马悦:《Linux内核分析》MOOC课程

    http://www.cnblogs.com/20135235my/p/5237267.html

  4. gh-ost: triggerless online schema migrations:Blog by Shlomi Noach:

    http://code.openark.org/blog/category/mysql https://rj03hou.github.io/mysql/gh-ost/

  5. Java实现打印功能-AWT Graphics2D

    Java实现打印功能 用java实现打印,java.awt中提供了一些打印的API,要实现打印,首先要获得打印对象,然后继承Printable实现接口方法print,以便打印机进行打印,最后用用Gra ...

  6. Spring mvc+Easyui遇到的几个问题

    简单的一个数据表的增删查改的总体界面的展示效果例如以下图: 1.datagrid数据载入问题 datagrid通过url请求后台数据,总记录数和数据行的属性是固定死的.数据行是rows,总记录数为to ...

  7. Nodejs创建HTTPS服务器

    Nodejs创建HTTPS服务器 从零开始nodejs系列文章,将介绍如何利Javascript做为服务端脚本,通过Nodejs框架web开发.Nodejs框架是基于V8的引擎,是目前速度最快的Jav ...

  8. The Pragmatic Programmer 读书笔记之中的一个 DRY-Don’t Repeat Youself

     The Pragmatic Programmer读书笔记之中的一个 DRY-Don't Repeat Youself 尽管自己买了非常多软件project方面的书,可是由于时间的问题.一直没有静 ...

  9. linux ifconfig命令配置ip地址

    Linux下网卡命名规律:eth0,eth1. 第一块以太网卡.第二块. lo为环回接口,它的IP地址固定为127.0.0.1.掩码8位. 它代表你的机器本身.   ifconfig [Interfa ...

  10. debian网络静态ip配置

    本配置适合于服务器上的静态ip配置,该方法简单可靠. 1 临时配置 ifconfig eth0 192.168.1.97 netmask 255.255.255.0 broadcast 192.168 ...