前言

在Linux系统中,用户分为 个权限位。好了,很多朋友对于Linux权限的了解就仅限于此了。但,Linux目录权限和文件权限一样吗?内核对于权限的检查过程又是怎样的?

如果你不清楚,本文将为你解惑。

目录权限

1. 目录读权限

目录读权限允许读取目录的文件列表并显示出来,仅仅是允许读取文件列表,对于文件其他信息的读取不保证。

事实上,如果只有读权限没有写权限,那么执行查看目录后显示如下:

2. 目录写权限

如果要在目录里面创建文件,那么就需要写权限,别忘了,也要执行权限。

3. 目录执行权限

目录执行权限允许你进入这个目录。比如,你要cd进一个目录( 切换工作目录 );又比如,当你要打开一个文件,那么,对于这个文件完整路径上的每个目录,你都要具备其执行权限。

内核权限检查机制

内核权限检查机制涉及到了文件所有者,文件所有组,进程有效用户ID,进程有效组ID,进程附加组ID。其中前两个属于文件属性,后三个属于进程属性。下面的检查机制实际上就是比对文件的权限ID和进程的权限ID。

内核权限检查机制分步骤进行,任何一步执行完后如果进程分配到了权限,则检查结束。

第一步:如果进程有效用户ID为0 ( 即root用户 ),那么该进程可对文件/目录做任何处理。

第二步:若进程的有效用户ID等于文件的所有者ID,那么该进程赋予文件所有者权限。

第三歩:若进程的有效组ID或者附加组ID等于文件所有组ID,那么该进程赋予文件所有组权限。

第四步:若文件的其他用户权限被设置,则进程赋予其他用户权限。

说明

其实Linux还有一些特殊权限( 也很重要 ),我将在下一篇文章进行讲解。

第十篇:Linux中权限的再讨论( 上 )的更多相关文章

  1. Linux 中权限的再讨论( 上 )

    前言 在Linux系统中,用户分为三个部分( 所有者 同组人 其他 ).每个部分的权限又可以赋予读/写/执行权限.这样,文件的权限标记一共包含 9 个权限位.好了,很多朋友对于Linux权限的了解就仅 ...

  2. 第十一篇:Linux中权限的再讨论( 下 )

    前言 上篇随笔讲述了Linux中权限的大致实现机制以及目录权限的相关规则.本文将讲解Linux中的三种特殊权限:SUID,SGID,Sticky权限. 看完这两篇文章,你一定会对Linux的权限有个更 ...

  3. Linux 中权限的再讨论( 下 )

    前言 上篇随笔讲述了Linux中权限的大致实现机制以及目录权限的相关规则.本文将讲解Linux中的三种特殊权限:SUID,SGID,Sticky权限.看完这两篇文章,你一定会对Linux的权限有个更深 ...

  4. Python 学习 第十篇 CMDB用户权限管理

    Python 学习 第十篇 CMDB用户权限管理 2016-10-10 16:29:17 标签: python 版权声明:原创作品,谢绝转载!否则将追究法律责任. 不管是什么系统,用户权限都是至关重要 ...

  5. Mysql篇--Linux中安装Mysql

    一.前述 由于Windows安装Mysql非常麻烦,所以分享一篇Linux中对MySQL的搭建,废话不多说,来,come on. 二.步骤 2.1 yum安装 yum install mysql-se ...

  6. Linux中权限(r、w、x)对于目录与文件的意义

    Linux中权限(r.w.x)对于目录与文件的意义 一.权限对于目录的意义 1.首先要明白的是目录主要的内容是记录文件名列表和子目录列表,而不是实际存放数据的地方. 2.r权限:拥有此权限表示可以读取 ...

  7. 第十二章:Linux中权限控制实例

    前言 前文对 Linux 中的权限进行了较为透彻的分析.而本文,则在前文的基础上,具体说明如何在代码中进行权限控制. 下面的代码涉及到以下几个方面: 1. 创建文件时设置文件权限 2. 修改文件的默认 ...

  8. linux中权限的修改

    修改访问权限的linux名是:Linux访问权限的问题是这样子的:比如 d rwx rwx rwx ,d是文件所在的文件,后面有9位,分别代表不同者的权限.第一个rwx代表这文件的所有者的权限,r是r ...

  9. linux中权限对文件和目录的作用

    chmod 755 a.txt 文件: r:读取文件内容(cat more head tail) w:编辑,新增,修改文件的内容(vi,echo) 不包括删除文件:原因是只能对文件内容进行修改,而在l ...

随机推荐

  1. 使用 Python 的 matplotlib 绘图库进行绘图

    matplotlib 是 Python 最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地行制图.而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中. 1  使用 Ma ...

  2. 【LeetCode】113. Path Sum II

    Path Sum II Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals ...

  3. 总结js(Iframe、window.open、window.showModalDialog)父窗口与子窗口之间的操作

    http://hi.baidu.com/yashua839/blog/item/131fdb2fe547ef221f3089af.html一.Iframe 篇 //&&&&am ...

  4. Bulk Load-HBase数据导入最佳实践

    一.概述 HBase本身提供了非常多种数据导入的方式,通常有两种经常使用方式: 1.使用HBase提供的TableOutputFormat,原理是通过一个Mapreduce作业将数据导入HBase 2 ...

  5. Oracle XE安装具体解释

    一.原数据库的卸载       数据库的卸载就不多说了,讲一下过程:       1.运行Oracle Uninstall,卸载Oracle产品     2.删除regedit下的全部Oracle相关 ...

  6. [原]C#设置文件夹用户权限

    var security = new DirectorySecurity();   string path=@"C:\temp" //设置权限的应用为文件夹本身.子文件夹及文件,所 ...

  7. verilog gtkwave

    gtkwave,开源波形显示软件 来自 bluesky1 博客.http://blog.sina.com.cn/s/blog_566ca6330100c0t3.html~type=v5_one& ...

  8. 3、Cocos2dx 3.0游戏开发找小三之搭建开发环境

    尊重开发人员的劳动成果.转载的时候请务必注明出处:http://blog.csdn.net/haomengzhu/article/details/27107295 搭建开发环境 使用 Cocos2d- ...

  9. 动态更新highcharts数据

    <!doctype html> <html> <head> <script type="text/javascript" src=&quo ...

  10. 在sql结果中显示行号

    1.准备 create table newtable ( name ), ) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; ); ); ); ); ); 2.实现 ) a ...