文件,目录,权限

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. StringBuilder 去除最后一个多余的字符的方法

    public class StringBuilterTest { public static void main(String[] args) { //新增一个map Map<String, S ...

  2. @PostConstruct注解原理解析

    所有文章 https://www.cnblogs.com/lay2017/p/11478237.html 正文 @PostConstruct注解使用简介 在了解一个东西的原理之前,我们得初步的懂得如何 ...

  3. docker的学习2

    docker基本命令: run 创建一个新的容器并运行一个新的命令 -a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项: -d: 后台运行容器,并返回容器 ...

  4. C# Winfrom DataGridView DataSource绑定数据源后--解决排序问题

    帮助类: public class SortBindingHelper<T> : BindingList<T> { private bool isSortedCore = tr ...

  5. centos下关闭自动锁屏

    自己这段时间在学习Linux,选用的系统的为CentOS,在实际操作过程中遇到问题,在无任何操作情况下,系统过一段时间自动锁屏需要重新输入密码.经过多次尝试以后终于成功!解决方法如下: Setting ...

  6. python-----批量操作xml文件(新建、增、删、改、查)

    最近需要处理xml文件,学习并整理了一些常用的操作,代码如下: #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2019/7/9 15: ...

  7. 用js刷剑指offer(链表中倒数第k个结点)

    题目描述 输入一个链表,输出该链表中倒数第k个结点. 牛客网链接 思路 设置两个指针,p,q,先让p走k-1步,然后再一起走,直到p为最后一个 时,q即为倒数第k个节点 js代码 // 空间复杂度1 ...

  8. vue-cli3 clone项目后如何安装插件及依赖模块启动项目

    一. 前提条件1.确保使用的是Node 8.11.0+和NPM 3+:2.确保已全局安装vue-clie3:npm install -g @vue/cli: 二.安装依赖 1.在安装依赖之前,先安装官 ...

  9. [转载]es6 Promise.resolve()方法

    es6 Promise.resolve()方法 2018-01-27 22:29:06 ixygj197875 阅读数 16925更多 分类专栏: ES6标准入门 (阮一峰) ES6标准入门   Pr ...

  10. 2019牛客暑期多校训练营(第五场)F maximum clique 1 二分图求最大独立集

    https://ac.nowcoder.com/acm/contest/885/F #include <bits/stdc++.h> //CLOCKS_PER_SEC #define se ...