以下内容源于朱有鹏《物联网大讲堂》课程的学习整理,如有侵权,请告知删除。

1、st_mode中记录的文件权限位

  • st_mode本质上是一个32位的数(类型就是unsinged int),这个数里的每一个位表示一个含义。
  • 文件类型和文件的权限都记录在st_mode中。
  • 我们使用专门的掩码去取出相应的位即可得知相应的信息。

2、ls  -l,打印出权限列表

(1)共9位,3个一组。

  • 第一组三个表示文件的属主(owner、user)对该文件的可读、可写、可执行权限;
  • 第2组3个位表示文件的属主所在的组(group)对该文件的权限;
  • 第3组3个位表示其他用户(others)对该文件的权限。

(2)属主表明这个文件属于谁

  • 一般来说文件的属主就是创建这个文件的那个用户;
  • 但是一个文件创建之后可以用chown命令去修改文件属主,用chgrp命令去修改文件所在的组;

3、文件操作时的权限检查规则

一个程序a.out被执行,a.out中试图去操作一个文件1.txt。如何判定a.out是否具有对1.txt的某种操作权限呢?

  • 首先1.txt具有9个权限位,规定了3种人(user、group、others)对该文件的操作权限;
  • 判定1.txt是否能被a.out来操作,关键先搞清楚a.out对1.txt到底算哪种人;
  • 准确的说是看a.out(假设是777)被谁执行,也就是当前程序(进程)是哪个用户的进程。

4、access函数检查权限设置

  • access函数,检测当前执行程序的那个用户在当前那个环境下对目标文件是否具有某种操作权限。
#include <stdio.h>
#include <unistd.h>#define NAME   "3.txt"int main(void)
{int ret = -1;ret = access(NAME, F_OK);if (ret < 0){printf("文件不存在 \n");return -1;}else{printf("文件存在 ");}ret = access(NAME, R_OK);if (ret < 0){printf("不可读 ");}else{printf("可读 ");}ret = access(NAME, W_OK);if (ret < 0){printf("不可写 ");}else{printf("可写 ");}ret = access(NAME, X_OK);if (ret < 0){printf("不可执行 \n");}else{printf("可执行 \n");}   return 0;
}

5、chmod/fchmod与权限修改

  • chmod是一个linux命令,用来修改文件的各种权限属性;
  • chmod命令只有root用户才有权利去执行修改;
  • chmod命令是调用linux内部的chmod这个API来实现的;第一个参数表示文件指针,第二表示希望文件有的属性。
#include <stdio.h>
#include <sys/stat.h>
int main(int argc, char **argv)
{int ret = -1; if (argc != 2){printf("usage: %s filename\n", argv[0]);return -1;}ret = chmod(argv[1], S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IWOTH);if (ret < 0){perror("chmod");return -1;}return 0;
}

6、chown/fchown/lchown与属主修改

  • linux中有个chown命令来修改文件属主;
  • chown root 1.txt;注意要在root用户下修改;
  • chown命令是用chown API实现的;

7、umask与文件权限掩码

  • 文件掩码是linux系统中维护的一个全局设置;
  • umask用来设定系统中,新创建的文件的默认权限;
  • umask命令通过调用umask这个API来实现。
  • umask 0022,之后创建的文件都是相应互补的权限。

Linux文件属性3——文件权限管理相关推荐

  1. 【Linux实验】文件权限管理

    一.实验目的及要求 在Linux文件服务器上,如何设置目录及文件权限和归属,以保证文件不被无关人员查看,根据需求写出具体实施方案及配置命令. 掌握利用chmod及chgrp等命令实现Linux文件权限 ...

  2. Linux用户及文件权限管理

    一.Linux 用户管理 Linux 是一个可以实现多用户登陆的操作系统,比如"李雷"和"韩梅梅"都可以同时登陆同一台主机,他们共享一些主机的资源,但他们也分别 ...

  3. Linux笔记2 文件权限管理

    1.查看目录下文件的权限:ls -al +路径 eg:查看/etc/passwd的权限用命令ls -al /etc/passwd 或用命令ll +路径 注:最好进入要查看的目录下,直接使用ll 或ls ...

  4. linux修改文件权限的命令_Linux基础文件权限管理

    图片来源:pexels.com 你好,我是goldsunC 让我们一起进步吧! Linux文件属性 文件权限在Linux基础中是一个很重要的概念,一个系统管理员应该熟练掌握文件权限的概念.OK,现在我 ...

  5. Linux下对文件权限的管理

    一.基本含义 1.文件权限存在的意义 (1)文件权限是系统最底层的安全机制组成之一 (2)权限设定的作用是保证文件可以被可用的用户做相应的操作 2.文件权限的查看 (1)ls -l file 查看文件 ...

  6. 《Linux基础三》用户和文件权限管理

    用户和文件权限管理 1,用户 管理员用户: Root用户,也称根用户.超级用户.超级管理员 可对根目录执行读写和执行操作 具有系统中的最高.所有权限 普通用户: 权限有限的用户 Root用户拥有系统的 ...

  7. 蓝桥云课linux入门3:用户及文件权限管理

    内容转自蓝桥云课 目录 1.内容 2.Linux用户管理 2.1查看用户 2.2创建用户 2.3用户组 将其它用户加入 sudo 用户组 2.4删除用户和用户组 3.Linux文件权限 3.1查看文件 ...

  8. Linux中的用户及文件权限管理总结

    一.用户 1.查看用户:who am I 2.创建用户:sudo adduser <用户名> 在linux中,root权限拥有至高无上的权利,一般登录系统时都是以普通账户的身份登录的,要创 ...

  9. Linux学习命令汇总三——Linux用户组管理,文件权限管理,文本搜索命令grep及正则表达式...

    本章Blog相关Linux知识点 解析:在数据库按搜索码查找相对应的条目,并找与之对应额外的其他数据库的过程:名称解析:UID ,组名解析:GID 数据库:文本文件,sql数据库,ldap数据库,用户 ...

最新文章

  1. 用Python分析《红楼梦》:见证了贾府的兴衰,你是否还能“笑道”世事无常
  2. linux 内核驱动模块的编译及加载
  3. extlink.php,ExtJs 学习笔记基础篇 Ext组件的使用_extjs
  4. C++调用父类的构造函数规则
  5. boost shared_ptr线程安全性
  6. [NOIP2002] 提高组 洛谷P1031 均分纸牌
  7. poj 1988(并查集)
  8. centos安装ES(elasticsearch)
  9. 使用SAP WebIDE开发SAP Fiori Worklist应用消费OData服务
  10. php 递归函数自调用函数,PHP闭包实现函数的自调用实现递归
  11. UVa 808 (建坐标系、找规律) Bee Breeding
  12. 1130 无法登录 mysql_无法登录phpmyadmin,报1130错误
  13. nvm nodejs npm快速安装
  14. 数字云财务迈入价值重塑新阶段,未来财务已来
  15. 各种音视频编解码学习详解之 编解码学习笔记(七):微软Windows Media系列
  16. 【富文本】2.windows或office原版镜像怎么下载,msdn.itellyou上面列的项目的详细解读
  17. 最多50名同学的学号,姓名,及三科成绩,计算每位同学的平均成绩,并找出平均分的最高分和最低分
  18. 华为m6更新鸿蒙吗,华为手机升级鸿蒙的方法,有哪位升级成功的吗?
  19. 英语口语232之每日十句口语
  20. python人工智能入门纳米学位_学习笔记(一) - 机器学习纳米学位

热门文章

  1. Django congtent types应用
  2. 项目开发经验谈之:项目到底谁说了算
  3. SQL SERVER7应用
  4. 数据结构排序法之鸡尾酒排序法he快速排序法
  5. 蚂蚁金服分布式事务开源以及实践 | SOFA 开源一周年献礼
  6. 研究人员发现:基于文本的AI模型容易受到改述攻击
  7. android传递数据bundle封装传递map对象
  8. HashMap vs ConcurrentHashMap — 示例及Iterator探秘
  9. 烂泥:【解决】word复制windows live writer没有图片
  10. ×××linux下vsftp服务器