linux权限源码分析,Linux基础之文件权限详解

Linux中对于权限的制定虽然没有Windows的那么精细,但是如果你了解并掌握Linux中文件的权限知识,也可以像Windows那样对权限做到精确配置。

Linux中的文件权限是什么?

如何查看Linux中的文件权限

[[email protected] test]# ll -d /test/

drwxr-xr-x. 2 root root 52 8月   7 20:18 /test/

上面的rwxr-xr-x即为文件的权限位共九位。下面分别对其进行介绍。

rwx∣r-x∣r-x

↓    ↓   ↓

属主 属组 其他

前三个为属主位:创建该文件者或被指定的文件所属者

中间三个为属组位:文件的所属组,在该组内的非属主用户对该文件拥有该属组权限。

最后三个Other位:other用户,既不属于属主又不在属组的用户

r:读权限    w:写权限    x:执行权限

文件中rwx的具体含义:

r:可以使用类似cat等命令查看文件内容

w:可以编辑或删除此文件

x:可以在命令提示符下当做命令提交给内核运行

目录中rwx的具体含义:

r:可以对此目录执行ls以列出内部的所有文件

w:可以在此目录创建文件:

x:可以使用cd切换进此目录,也可以使用ls -l查看内部文件的详细信息

下面请看一个对应关系

000 ---  对应十进制0

001 --x  对应十进制1

010 -w-  对应十进制2

011 -wx  对应十进制3

100 r--  对应十进制4

101 r-x  对应十进制5

110 rw-  对应十进制6

111 rwx  对应十进制7

上面rwx三位与三位二进制对应,因此权限也可以用数字表达

比如:

755代表rwxr-xr-x  664代表rw-rw-r--

管理Linux中的文件权限:

chmod chown chgrp umask

chmod  修改文件权限位命令

chmod - change file mode bits

表达格式:

chmod [OPTION]... MODE[,MODE]... FILE...

chmod [OPTION]... OCTAL-MODE FILE...

chmod [OPTION]... --reference=RFILE FILE...

常用选项:

-R 递归,将设置的权限应用到下面的所有文件

1、chmod [OPTION]... MODE[,MODE]... FILE...

赋权表示法:u=属主  g=属组  o=其他  a=所有

直接操作一类用户的所有权限位 rwx

写法:u=rwx

[[email protected] test]# ll

总用量 16

-rw-r--r--. 1 root root 43 8月   7 16:46 cat1

-rw-r--r--. 1 root root 19 8月   7 16:46 cat2

-rw-r--r--. 1 root root 57 8月   7 19:34 head

-rw-r--r--. 1 root root 55 8月   7 20:18 siting

[[email protected] test]# chmod u=rwx,g=rwx cat1

[[email protected] test]# ll

总用量 16

-rwxrwxr--. 1 root root 43 8月   7 16:46 cat1

-rw-r--r--. 1 root root 19 8月   7 16:46 cat2

-rw-r--r--. 1 root root 57 8月   7 19:34 head

-rw-r--r--. 1 root root 55 8月   7 20:18 siting

同时更改多个所属对象权限,中间用“,”隔开

授权表示法:直接操作一类用户的一个权限为r,w,x

写法:u+(r|w|x) u-(r|w|x) g+(r|w|x) g-(r|w|x) o+(r|w|x) o-(r|w|x)

a+(r|w|x) a-(r|w|x)

[[email protected] test]# chmod u+x,g+w cat2

[[email protected] test]# ll

总用量 16

-rwxrwxr--. 1 root root 43 8月   7 16:46 cat1

-rwxrw-r--. 1 root root 19 8月   7 16:46 cat2

-rw-r--r--. 1 root root 57 8月   7 19:34 head

-rw-r--r--. 1 root root 55 8月   7 20:18 siting

2、chmod [OPTION]... OCTAL-MODE FILE...

[[email protected] test]# chmod 755 head

[[email protected] test]# ll

总用量 16

-rwxrwxr--. 1 root root 43 8月   7 16:46 cat1

-rwxrw-r--. 1 root root 19 8月   7 16:46 cat2

-rwxr-xr-x. 1 root root 57 8月   7 19:34 head

-rw-r--r--. 1 root root 55 8月   7 20:18 siting

3、chmod [OPTION]... --reference=RFILE FILE... 指定目标文件与所指文件的权限一致(不常用)

[[email protected] test]# chmod --reference=cat1 siting

[[email protected] test]# ll

总用量 16

-rwxrwxr--. 1 root root 43 8月   7 16:46 cat1

-rwxrw-r--. 1 root root 19 8月   7 16:46 cat2

-rwxr-xr-x. 1 root root 57 8月   7 19:34 head

-rwxrwxr--. 1 root root 55 8月   7 20:18 siting

siting与cat1文件的权限保持一致

chown 修改属主属组

chown - change file owner and group

表达格式:

chown [OPTION]... [OWNER][:[GROUP]] FILE...

chown [OPTION]... --reference=RFILE FILE...

常用选项:

-R 递归修改该

1、chown [OPTION]... [OWNER][:[GROUP]] FILE...

[[email protected] test]# chown gentoo:fedore cat1

[[email protected] test]# ll

总用量 16

-rwxrwxr--. 1 gentoo fedore 43 8月   7 16:46 cat1

-rwxrw-r--. 1 root   root   19 8月   7 16:46 cat2

-rwxr-xr-x. 1 root   root   57 8月   7 19:34 head

-rwxrwxr--. 1 root   root   55 8月   7 20:18 siting

2、chown [OPTION]... --reference=RFILE FILE...

[[email protected] test]# chown --reference cat1 cat2

[[email protected] test]# ll

总用量 16

-rwxrwxr--. 1 gentoo fedore 43 8月   7 16:46 cat1

-rwxrw-r--. 1 gentoo fedore 19 8月   7 16:46 cat2

-rwxr-xr-x. 1 root   root   57 8月   7 19:34 head

-rwxrwxr--. 1 root   root   55 8月   7 20:18 siting

因为chown既可以改属主又可以改属组所以下面这个chgrp命令就被打入冷宫,为了缅怀一下它,这里还是简要介绍下

chgrp - change group ownership 修改属组

表达格式:

chgrp [OPTION]... GROUP FILE...

chgrp [OPTION]... --reference=RFILE FILE...

[[email protected] test]# chgrp gentoo head

[[email protected] test]# ll

总用量 16

-rwxrwxr--. 1 gentoo fedore 43 8月   7 16:46 cat1

-rwxrw-r--. 1 gentoo fedore 19 8月   7 16:46 cat2

-rwxr-xr-x. 1 root   gentoo 57 8月   7 19:34 head

-rwxrwxr--. 1 root   root   55 8月   7 20:18 siting

[[email protected] test]# chgrp --reference cat1 siting

[[email protected] test]# ll

总用量 16

-rwxrwxr--. 1 gentoo fedore 43 8月   7 16:46 cat1

-rwxrw-r--. 1 gentoo fedore 19 8月   7 16:46 cat2

-rwxr-xr-x. 1 root   gentoo 57 8月   7 19:34 head

-rwxrwxr--. 1 root   fedore 55 8月   7 20:18 siting

umask :文件的权限反向掩码,俗称遮罩码

作用:它是为了控制默认权限,不要使默认的文件和目录具有全权而设的

文件:666-umask

目录:777-umask

注:之所以文件用666去减,表示文件默认不能拥有执行权限,如果减得的结果中有执行权限,则需+1

umask:查看当前umask

[[email protected] test]# umask

0022

umask MASK:设置umask  仅对当前shell进程有效

若要长期修改umask的值,可以把它写进/etc/profile(全局有效)或~/.profile(个人)或~/.bash_profile中

[[email protected] test]# umask 0002

[[email protected] test]# umask

0002

[[email protected] test]# touch umask1

[[email protected] test]# ll

总用量 16

-rwxrwxr--. 1 gentoo fedore 43 8月   7 16:46 cat1

-rwxrw-r--. 1 gentoo fedore 19 8月   7 16:46 cat2

-rwxr-xr-x. 1 root   gentoo 57 8月   7 19:34 head

-rwxrwxr--. 1 root   fedore 55 8月   7 20:18 siting

-rw-rw-r--. 1 root   root    0 8月   8 20:49 umask1

使用root用户创建一个新文件umask1其权限为664,umask为0002,其新建文件的权限符合我们的设定:666-002=664。

时间: 08-08

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/571391.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue工程模板文件 webpack打包

1、github github地址:https://github.com/MengFangui/VueProjectTemplate 2、webpack配置 (1)基础配置webpack.base.config.js const path require(path); //处理共用、通用的js const webpack require(webpack); //css单独打包 const Ext…

flutter的按钮如何变为不可选中_如何在Flutter中禁用按钮?

小编典典我想你可能要出台一些辅助功能,以build您的按钮,以及与一些属性键关机的沿有状态的部件。使用StatefulWidget / State并创建一个变量来保存您的条件(例如isButtonDisabled)最初将其设置为true(如果您要这样做)呈现按钮时,请勿将onPre…

linux下toe网卡驱动,toe命令是干什么的,有没有大神解答一下

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼[lHP14 ~]$ toe -as--> /etc/terminfo----> /usr/share/terminfo--*-: Eterm Eterm with xterm-style color support (X Window System)--*-: Eterm-256color Eterm with xterm 256-colors--*-: Eterm-88color Eterm with 88…

ALSA声卡笔记2---ASoC驱动框架

1、简单了解一下ASOC 在嵌入式系统里面的声卡驱动为ASOC(ALSA System on Chip) ,它是在ALSA 驱动程序上封装的一层 分为3大部分,Machine,Platform和Codec ,三部分的关系如下图所示:其中Machine是指我们的…

举例说明语言接触会造成哪些结果_语言学概论全真模拟演练(二)

第一部分选择题(30分)一、单项选择题(本大题共20小题,每小题1分,共20分。在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内,错选、多选或来选均无分。)1.语言符号可变性的根本原因在于语言符号的…

linux下ceontab不起作用,linux下crontab 不能执行的原因

1.相关sh文件没有x权限2.相关sh文件中,不包含如下的信息:[oracleleiredhat u01]$ cat job.shexport ORACLE_BASE/u01/app/oracleexport ORACLE_HOME/u01/app/oracle/oracle/product/10.2.0/db_1PATH/u01/app/oracle/oracle/product/10.2.0/db_1/bin:$PAT…

drive下载 synology_群晖 Synology Drive 的安装与使用

首先进入“套件中心”,然后在搜索框中输入“drive”,出现的结果中能看到需要安装的套件了,点击“立即安装”即可,剩下就是确认和下一步,如图:当然我们也要安装安装完后该套件会四个选项:立即打开…

dev_open linux,linux 伪终端设备 /dev/ptmx

伪终端(pseudoterminal): ptmx, pts (伪终端master和伪终端slave)./dev/ptmx用于创建伪终端主从设备对.当我们用open打开/dev/ptmx设备后, 返回主设备的文件描述符,并且在/dev/pts/目录下创建一个伪终端从设备.在成功打开/dev/ptmx后, 可以通过函数ptsname()来获取从设备的path…

fetch git pull 切换_git fetch git pull

解析.git文件夹进入正题之前,我们先来看看.git文件夹1.config配置文件[core]repositoryformatversion 0filemode truebare falselogallrefupdates truesharedRepository group[remote "origin"]url https://xxx/xxx/xxx.gitfetch refs/heads/*:ref…

C语言对stm32f103程序,STM32F103WIFI程序C语言

《STM32F103WIFI程序C语言》由会员分享,可在线阅读,更多相关《STM32F103WIFI程序C语言(33页珍藏版)》请在人人文库网上搜索。1、实用标准文案 AP模式 AP的SSID : ATWAP11BG,LAUVAN(SSID),CHI AP的KEY: : ATWAKEYWPA2PSK,AES,22222222 AP模式&…

python之路_自定义属性、json及其他js补充

一、自定义属性 我们知道,在前端页面渲染的过程中,我们可能会需要用到一些后端传来的参数,这种参数的获取我们一般是通过模板语言渲染得到。但是当这些参数是在js文件中被用到(js代码若是单独以文件形式被引用,模板语言…

python中类型错误、计数不采用关键字的错误怎么改_Python设计错误

你要求链接或其他来源,但实际上没有。这些信息散布在许多不同的地方。什么才是真正构成设计错误的因素?您是只考虑语言定义中的语法和语义问题,还是包括诸如平台和标准库问题以及特定实现问题等实用问题?您可以说,从性…

C语言打印日历总结报告,C语言打印日历

应同学的要求,写了个日历,输入年份,输出12个月份的日历表,代码如下 :#includebool isLeap(int year){if((year%40 && year%100!0) || (year%4000))return 1;elsereturn 0;}void printCalendar(int year){int d…

电文的编码和译码c语言实现,电文的编码及译码.doc

数据结构课程设计题目:电文的编码与译码院系:班级:学号:姓名:2014-2015年度 第1学期目录一.题目:电文的编码与译码3二.设计目标3三.问题描述3四.需求分析3五&…

java中二进制怎么说_面试常用:说清楚Java中synchronized和volatile的区别

回顾一下两个关键字:synchronized和volatile1、Java语言为了解决并发编程中存在的原子性、可见性和有序性问题,提供了一系列和并发处理相关的关键字,比如synchronized、volatile、final、concurren包等。2、synchronized通过加锁的方式&#…

python 日记 day4。

1.为何数据要分类 数据是用来表示状态的,不同的状态应该用不同类型的数据来表示。 2.数据类型 数字 字符串 列表 元组 字典 集合 列表:列表相比于字符串,不仅可以储存不同的数据类型,而且可以储存大量数据,32位python的…

c语言复合语句开始标记字符,国家开放大学C语言程序设计A第一次形考任务及答案(2020年整理)(7页)-原创力文档...

;学 海 无 涯 ;;学 海 无 涯 ;学 海 无 涯 ;学 海 无 涯二、判断题(共 60 分,每小题 2 分。叙述正确则回答“是”,否则回答“否”)题目 21C 语言中的每条简单语句以分号作为结束符。对 题目 22C 语言中的每条复合语句以花括号作为结束符。错 题目 23在 C…

搜索不到投屏设备怎么办_电视投屏搜索不到设备解决方案

手机投屏电视想必许多人都用过,但是仍然有些人不会投屏,或者说投屏不成功。今天小编就给大家讲解,手机投屏电视,搜索不到设备怎么解决呢?在解决这个问题之前,我们先了解一下,手机投屏电视需要哪…

准确率(Accuracy), 精确率(Precision), 召回率(Recall)和F1-Measure(对于二分类问题)

首先我们可以计算准确率(accuracy),其定义是: 对于给定的测试数据集,分类器正确分类的样本数与总样本数之比。也就是损失函数是0-1损失时测试数据集上的准确率。 下面在介绍时使用一下例子: 一个班级有20个女生,80个男生。现在一个分类器需要…

js与c语言互相调用,Objc与JS间相互调用

过去3、4年都在进行跨平台的混合应用开发,但一直没有系统梳理跨平台技术的底层原理,趁新工作未正式入职,这里整理一下。跨平台的一种实现是基于webview。所谓webview,实质是在原生app中打开一个内嵌浏览器,具体到iOS平…