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. WPF 和 百度 eChart 交互

    https://blog.csdn.net/defrt4/article/details/52689052

  2. java 中的强制转换

    强制转换分两种,一种是基础类型强制转换(Type Conversion),一种是引用类型强制转换(Class Casting):

  3. 利用JAVA API函数实现数据的压缩与解压缩

      综述 许多信息资料都或多或少的包含一些多余的数据.通常会导致在客户端与服务器之间,应用程序与计算机之间极大的数据传输量.最常见的解决数据存储和信息传送的方法是安装额外的存储设备和扩展现有的通讯能力 ...

  4. eclipse 安装MyBatis插件 -- 官网直接拖动“安装”

    拖动“安装” http://marketplace.eclipse.org/marketplace-client-intro?mpc_install=2947754

  5. [Unity优化]批处理01:Statistics窗口

    参考链接: https://docs.unity3d.com/Manual/RenderingStatistics.html unity版本:2018.3.8 新建一个场景,只保留Main Camer ...

  6. JDBC的使用-----Statement

    JDBC的查询步骤1.加载数据库驱动类 1)在工程下新建lib文件夹,将 ojdbc6.jar(jar包在:E:\oracle\product\11.2.0\dbhome_1\jdbc\lib)拷贝至 ...

  7. 佳鑫:信息流广告CTR一样高,哪条文案转化率更好?

    在优化信息流广告的过程中,你有没有遇到这样的帐户? 投了几个AB方案,点击率好不容易上去了,但转化率还是有的高.有的低! 这儿就有这么一个为难的案例: 一个广告主计划向有意愿在北京预订酒店的用户投放信 ...

  8. 解决由于服务器调用删除或添加字段后CXF客户端未更新导致异常问题org.apache.cxf.interceptor.Fault: Unmarshalling Error: Unexpected element

    采用CXF客户端调用Webservice服务,由于服务端时不时会对Webservice服务删除或添加一些字段,而CXF未及时更新客户端代码导致再次调用服务时报异常错误: Interceptor for ...

  9. 设计CUBE by kylin

    1.新增或者选择一个已有项目(project)后,将hive数据导入到kylin中,web界面的Model→Data source,导入数据 2.创建数据模型,数据模型是Cube的基础,它主要用于描述 ...

  10. 5. Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.

    解决方案,见  https://www.jianshu.com/p/836d455663da