文件,目录,权限

1. 用名称打开任一个类型的文件时,对该名字中包含的每一个目录,包括它可能隐含的当前工作目录都应该具有执行权限;这就是目录执行权限通常被称为搜索位的原因;

例如:为了打开文件/usr/include/stdio.h,需要对目录/、/usr、/usr/include具有执行权限;而具有对文件本身的适当权限,取决于以何种模式打开它;

注意:对目录的读权限和执行权限的意义是不同的,读权限允许我们读目录,获得在该目录中的所有文件名的列表;而执行权限决定是否有资格搜索该目录;

2. 对于一个文件的读/写权限决定了是否能够打开文件进行读/写操作;

3. 在open函数中对一个文件指定O_TRUNC标志,必须对该文件具有写权限;

4. 为了在一个目录中创建新文件,必须对该目录具有写权限和执行权限;

5. 为了删除一个文件,必须对包含文件的目录具有写权限和执行权限;对该文本本身则不需要读、写权限;

6. 如果用exec函数执行某个文件,则必须对该文件具有执行权限,并且文件必须是一个普通文件;

内核进行权限位测试步骤

1. 若进程的有效用户ID是0,即超级用户,则允许访问;

2. 若进程的有效用户ID等于文件的所有者ID,如果所有者适当的权限被设置,则允许访问,否则拒绝访问;

3. 若进程的有效组ID或者进程的附属组ID之一等于文件的组ID,那么如果组适当的访问权限位被设置,则允许访问,否则拒绝访问;

4. 若其他用户适当的访问权限位被设置,则允许访问,否则拒绝访问;

上述步骤,安装顺序进行测试,直到判断出权限成功或者失败为止;

重读APUE(5)-文件权限的更多相关文章

  1. [apue] linux 文件访问权限那些事儿

    前言 说到 linux 上的文件权限,其实我们在说两个实体,一是文件,二是进程.一个进程能不能访问一个文件,其实由三部分内容决定: 文件的所有者.所在的组: 文件对所有者.组用户.其它用户设置的权限访 ...

  2. (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO

    . . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...

  3. (三) 一起学 Unix 环境高级编程 (APUE) 之 文件和目录

    . . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...

  4. Linux下文件权限(一)用户ID和用户组ID

    最近在读<unix环境高级编程>,看到文件权限这里比较糊涂,主要设计多个用户ID和用户组ID,包括下面两个: (1)实际用户ID和实际用户组ID:这一部分表示我们究竟是谁.这两个字段在登录 ...

  5. Atitit  godaddy 文件权限 root权限设置

    Atitit  godaddy 文件权限 root权限设置 1. ubuntu需要先登录,再su切换到root1 2. sudo 授权许可使用的su,也是受限制的su1 3. ubuntu默认吗roo ...

  6. Linux用户体系和文件权限总结

    一.           Linux系统用户和用户组相关文件 1.  /etc/passwd文件 这个passwd文件是Linux用户信息文件.文件格式说明如下: root:x:0:0:root:/r ...

  7. 【转】linux查看及修改文件权限以及相关

    linux查看及修改文件权限以及相关 查看文件权限的语句: 在终端输入: ls -l xxx.xxx (xxx.xxx是文件名) 那么就会出现相类似的信息,主要都是这些: -rw-rw-r-- 一共有 ...

  8. Linux下用户组、文件权限详解

    在linux中的每个用户必须属于一个组,不能独立于组外.在linux中每个文件有所有者.所在组.其它组的概念 - 所有者 - 所在组 - 其它组 - 改变用户所在的组 所有者 一般为文件的创建者,谁创 ...

  9. 文件权限:普通(r、w、x)和特殊(s、t)

     linux中,常常涉及到权限的问题.文件的权限有3组,owner,group,other,每一组都有rwx三种设置.r(4):可读:w(2):可写:x(1):可执行.我们在执行shell命令ls - ...

随机推荐

  1. 货币转换C

    描述 人民币和美元是世界上通用的两种货币之一,写一个程序进行货币间币值转换,其中:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮ ...

  2. JVM内存结构划分

    JVM内存结构划分 JVM内存结构划分 数据区域划分 程序计数器 虚拟机栈 本地方法栈 堆 方法区 运行时常量池 StringTable 直接内存 创建新对象说明 对象的创建 对象的内存布局 对象头 ...

  3. Linux学习笔记:cut命令

    基础 功能:文件内容查看,显示行中指定部分,删除文件中指定字段.cut 命令用于显示每行从开头算起 a - b 的文字. 语法: cut [-bn] [file.txt] cut [-c] [file ...

  4. django-两种方式对单表的操作

    单表操作的内容 我们这里对数据库单表的操作包含增删改查四部分 具体链接数据库的方式我们是通过pymysql,当然你也可以用其他的. 两种方式的概念与区别 1.新url的方式 主要就是我们每一次向后台提 ...

  5. 你不知道的javascript(上卷)读后感(一)

    三剑客 编译,顾名思义,就是源代码执行前会经历的过程,分三个步骤, 分词/词法分析,将我们写的代码字符串分解成多个词法单元 解析/语法分析,将词法单元集合生成抽象语法树(AST) 代码生成,抽象语法树 ...

  6. UMI.js开发知识总结

    五分钟掌握最小知识体系 本文阅读时间大概为5分钟,但是能让你了解基于UMI和DVA构建项目的最小知识体系,你可以粗略的浏览一下本文所提到的知识,在后续的讲解中都会多次重复提起,保证学习效率.由于现在前 ...

  7. JFrame windowbuiler的使用基础

    一.通过windowbuilder创建java项目: New --Other--windowbuilder--SWT Designer --SWT/JFace Java Project 二.创建文件 ...

  8. C#基础 结构体、枚举

    一 结构体 结构体(struct)指的是一种数据结构,一个变量组,是一个自定义的集合.通常使用结构体创造新的“属性”,封装一些属性来组成新的类型.   结构体一般定义在Mian函数上面,位于Class ...

  9. 【leetcode】339. Nested List Weight Sum

    原题 Given a nested list of integers, return the sum of all integers in the list weighted by their dep ...

  10. ubuntu系统---ubuntu16.04 + virtualenv + py2.7 + tf1.5.0 + keras2.2.4 + opencv2.4.9 +Numpy1.14

    ubuntu16.04 + virtualenv + py2.7 + tf1.5.0 + keras2.2.4 + opencv2.4.9 +Numpy1.14 @https://www.liaoxu ...