Linux文件系统每个文件分为inode和block,inode中包含一些基本信息(文件名,类型,长度,修改时间,权限等待),并且指向包含文件真实内容的block,而目录是文件的一种,其block的内容就是该目录下的文件列表,也就是一列文件名,并附有指向该文件inode的指针。

  inode中有权限信息,rwx分别为可读可写可执行,;每个目录相当于一个黑墙围成的房间,但正面有一扇玻璃门(类似橱窗),r代表房间中的灯(是否打开),而x权限代表进入房间的玻璃门(是否打开),w容易理解是房间中的东西的位置能否修改。有r则即使未开门也能看见里面有什么东西,但只能远观(只能显示名字和类别),而有x无r则可以进门但里面一片漆黑不知道有些什么,此时黑墙上若有其它门也可以摸着进入下一个房间。

  更新:

  文件组织的权限都在内核中,每种权限都对应一些内核函数调用。对于文件来说rwx就是block的权限,其中x对应exec,rw对应open|read/write,而对于目录来说,block分两类,文件名和inode,r是block内文件名的读取权限,x是block中的inode读取权限,w是block的修改权限,包括名字和inode,所以目录的rwx就是目录的一套i/o系统调用,opendir等等。这意味着目录有x可以下级索引,r仅仅是查看下级的名称,w可以组织下级。

  由于文件系统的inode,block模式,目录只对下一级负责。一个小例子,由于执行程序用到“./xxx”,或者/xx/xx/xx,都会转化为绝对路径,所以对目录的操作都是从根开始扫描的原子操作,没有中间指针,文件系统就是一种数据库。

  除了owner-group-others的rwx,还有三组别的权限,实际用户/组ID,有效用户/组,设置用户/组ID,这三组都是指程序运行时的用户名和组。按顺序来,实际用户/组ID说的是用户账户,在登录时用配置初始化,切换用户时可以改变。有效用户/组ID是指程序,每当运行一个新程序时,新程序也需要有用户名/组来获取对应的权限,所以用户执行了一个程序,程序 就有了当前用户的权限(成了一个活人)。但是如果想让该程序去读取一些当前用户不能读的文件,怎么办呢?

  这就是设置用户/组ID的意义,如果一个程序有了设置用户/组ID,那么执行时,权限为设置用户/组ID的权限,这样,如果想要读只有该用户能读的文件时,让该用户把设置用户/组ID设置为该用户,就可以了。另一种说法,如果想要让别人读一个你的文件,但又不想给多余的权限时,可以定制一个读取程序,然后设置设置用户/组ID,给他人使用。

  说到这,Linux系统最高权限就是内核本身,其次是root,然后是用户以及分配的各种权限。所谓权限,就是调用时的检查,而调用的提供者是内核。内核制定了一系列的规则逻辑,形成秩序。

关于Linux 文件权限的思考的更多相关文章

  1. 修改linux文件权限

    Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. 文件或目录的访问权限分为只读,只写和可执行三种.以文件为例,只读权限表示只允许读其内容,而禁 ...

  2. Linux:文件权限

    Linux:文件权限 1.文件权限 ☆文件所有者 ☆用户组 ☆其他人 ☆ROOT 说明: Linux系统中默认所有系统上的账号与一般身份用户,还有那个root的相关信息记录在/etc/passwd文件 ...

  3. Linux 文件权限总结

    在 Linux 中最基本的任务之一就是设置文件权限.理解它们是如何实现的是你进入 Linux 世界的第一步.如您所料,这一基本操作在类 UNIX 操作系统中大同小异.实际上,Linux 文件权限系统就 ...

  4. Linux&shell 之Linux文件权限

    写在前面:案例.常用.归类.解释说明.(By Jim) Linux文件权限用户useradd test (添加用户test)userdel test (删除用户test)passwd test(修改用 ...

  5. linux文件权限整理

    网上对linux文件权限的已经很多,不过还是要自己整理一下,不然每次都要查资料. linux下所有东西都是文件,包括设备,所以这里的文件也包括文件夹. 先是查看文件权限:ls -lh xzc@xzc- ...

  6. 修改linux文件权限命令:chmod 【转载】

    Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. chmod  命令可以改变所有子目录的权限,下面有2种方法 改变一个文件的权限: chmod ...

  7. linux文件权限总结(创建root不可以删除文件、只可追加的日志文件等)

    文件类型 对于文件和目录的访问权力是根据读访问,写访问,和执行访问来定义的. 我们来看一下 ls 命令的输出结果 [root@iZ28dr6w0qvZ test]# ls -l 总用量 72 -rw- ...

  8. Linux 文件权限于目录配置

    用户与用户组 我們以王三毛為例,王三毛這個『檔案』的擁有者為王三毛,他屬於王大毛這個群組, 而張小豬相對於王三毛,則只是一個『其他人(others)』而已. 不過,這裡有個特殊的人物要來介紹的,那就是 ...

  9. Linux文件权限与属性详解 之 SUID、SGID & SBIT

    Linux文件权限与属性详解 之 一般权限 Linux文件权限与属性详解 之 ACL Linux文件权限与属性详解 之 SUID.SGID & SBIT Linux文件权限与属性详解 之 ch ...

随机推荐

  1. Intellij idea使用过程中遇到的一些问题

    问题:使用maven命令时,在报错信息里中文乱码,比如一些数据库配置报错什么的,是中文报错,设置里该设置为UTF-8的都设置了. 解决方法:idea.exe.vmoptions里增加-Dfile.en ...

  2. Lubuntu下安装Python3.6

    Lubuntu下系统自带的Python版本是2.X,由于开发环境要求Python3,于是我们安装Python3.6 1.在终端输入以下命令: sudo add-apt-repository ppa:j ...

  3. MySQL5.7.17解压版安装

    首先将mysql解压,公司的mysql解压后自带my.ini文件,结构如下: 在my.ini文件中配置的data路径在my文件夹下,需要删掉,然后修改my.ini文件中basedir和datadir路 ...

  4. Xilinx FPGA开发随笔

    1.UCF文件 1.1.UCF作用 UCF文件主要是完成管脚的约束,时钟的约束, 以及组的约束. 1.2.UCF语法 普通IO口只需约束引脚号和电压: NET "端口名称" LOC ...

  5. group by 拓展

    Oracle的group by除了基本使用方法以外,还有3种扩展使用方法,各自是rollup.cube.grouping sets.分别介绍例如以下: 1.rollup 对数据库表emp.如果当中两个 ...

  6. 关于Unsupported major.minor version 52.0解决方案的补充

    参考:https://blog.csdn.net/jingtianyiyi/article/details/80455916 补充: 这个设置比较容易忽略: 在eclipse中新建tomcat或在原有 ...

  7. eclipse详细安装教程与环境变量设置

    地址:https://blog.csdn.net/q651742112/article/details/73477400 源地址:https://www.cnblogs.com/yeminglong/ ...

  8. PackagesNotFoundError: The following packages are not available from current channels

    因为要用到lifelines 包,在cmd中使用conda install lifelines ,显示如下错误: PackagesNotFoundError: The following packag ...

  9. PHP大神必须养成的十大优良习惯

    1.多阅读手册和源代码 没什么比阅读手册更值得强调的事了–仅仅通过阅读手册你就可以学习到很多东西,特别是很多有关于字符串和数组的函数.就在这些函数里面包括许多有用 的功能,如果你仔细阅读手册,你会经常 ...

  10. bootstrap-datetimepicker 时间配置,包含颜色

    if ($('.isdatetimepicker')!=undefined&&$('.isdatetimepicker').datetimepicker!=undefined) { / ...