初识Linux:权限(2)

目录

[权限 = 用户(角色)+ 文件权限属性](#权限 = 用户(角色)+ 文件权限属性)

文件的权限属性:

有无权限的区别:

身份匹配:

拥有者、所属组的修改:

八进制的转化:

文件的类型:

x可执行权限为什么不能执行?

目录权限:

[umask 过滤:](#umask 过滤:)


++以下指令均在Xshell 7 中进行++

++权限 = 用户(角色)+ 文件权限属性++

上一篇:初识Linux:权限(1)-CSDN博客

文件的权限属性:

一个文件可以拥有三个权限:

  1. 是否具有可以读的权限
  2. 是否具有可以写的权限
  3. 是否具有可以执行的权限

这三种权限分别对应字符 r 、w、x ,当具有可读权限的时候会显示字符r,当具有可写权限时会显示字符w,当具有可执行权限时会显示x。

  • 而如上图所示,其中的 - rw - rw- r-- 除去最前面的-表示为文件的类型是普通文件外,其余的九个字符三个三个为一组分为三组,这三组分别对应着拥有者,所属组,other。

其可以表示为拥有者有着对本文件的权限,所属组对本文件的权限,other对本文件的权限。

又而最后的表示为,拥有者对文件的权限是可以读、可以写、不可以执行,所属组对文件的权限是可以读、可以写、不可以执行,other对文件的权限是可以读、不可写、不可以执行。

这些权限可以认定为 文件对不同的用户 而开放的不同权限。

当然这些权限是可以修改的,使用chmod进行对应角色的权限修改:

删去 拥有者 的 可读权限

添加 拥有者 的可读权限和可写权限

删去 所属组 的 可写权限

删去 other 的 可读权限

修改 多个 用户的权限

同时添加 拥有者 所属组 other 的可读权限

有无权限的区别:

对于普通用户:没有 r 权限 就不能查看文件的内容,没有w权限就不能再文件中写入内容。

这是普通文件给予自己的一种束缚,即便文件的创始者是自己,但是对于超级用户root而言可以无视这些束缚。

身份匹配:

当文件的拥有者和所属组是同一个时,这就会产生一共疑问,我是拥有者,但拥有者没有这些权限,但我也是所属组,所属组有这些权限,但为什么还是不能使用这些权限呢?


答:

  1. 这涉及到linux的身份识别问题,linux对用户的身份识别只识别一次, 也就说第一个身份识别失败后会开始识别第二次,当识别成功后就不会往后继续识别身份。
  2. 例如匹配完拥有者成功后,就不继续匹配是否是所属组了,当识别不是拥有者不是所属组之后就认定为other

拥有者、所属组的修改:

  1. chown 用户名 文件 修改文件的拥有者
  2. chgrp 用户名 文件 修改文件的所属组
  3. chown 用户名1:用户名2 文件 修改文件的拥有者和所属组

修改拥有者

同时修改拥有者和所属组

八进制的转化:

三个三个一组的读、写、可执行字符可以因为是否存在权限 而转化为数字,如果存在权限则为1没有权限则为0。

如图所示,可以通过权限的存在与否转化为一串二进制代码 110 110 100 而二进制数位又可以因为三个一组 转化为八进制数位 6 6 4

所以,修改文件的拥有者、所属组、other 的权限 也可以这样写:

0 0 0 是八进制数位,可以表示拥有者 、所属组、other 没有任何的权限。

7 7 7 则是表示拥有者、所属组、other 同时有着 r、w、x三个权限。

文件的类型:

Linux内部的文件,它的类型并不是看文件的后缀名,而是查看文件信息的最前端的字符,如果是字符 - 则表示这是一个普通文件,如果是字符 d 则表示的是目录文件。

当然,linux内部的文件是不看文件的后缀,但是linux的工具却需要认定Linux文件的后缀,才能够根据文件的类型进行执行相应的进程

x可执行权限为什么不能执行?

当然,linux文件的后缀不论是什么,只要这个文件本身是能够可以执行的文件 ,才可以执行,即便这个文件的拥有者、所属组、甚至是other 都具有可以执行文件的权限,但文件本身不能执行,那么这个权限也毫无用处。

目录权限:

目录本身也是一个文件,所以它也有着拥有者、所属组、other ,而拥有者、所属组、other也有着对目录的权限。

对于目录而言,r权限是查看目录内部的文件,用户失去了r则看不了目录内部的文件。

而 w权限是再目录内部进行文件的删除、修改、建立,失去了w权限就不能再目录内部建立文件和删除文件。

而 x 权限则是进入目录的一个必要条件,如果用户没有对目录的x权限,则当前用户是进入不了目录内部的。

umask 过滤:


相关推荐
cominglately1 小时前
centos单机部署seata
linux·运维·centos
魏 无羡1 小时前
linux CentOS系统上卸载docker
linux·kubernetes·centos
CircleMouse2 小时前
Centos7, 使用yum工具,出现 Could not resolve host: mirrorlist.centos.org
linux·运维·服务器·centos
木子Linux2 小时前
【Linux打怪升级记 | 问题01】安装Linux系统忘记设置时区怎么办?3个方法教你回到东八区
linux·运维·服务器·centos·云计算
mit6.8242 小时前
Ubuntu 系统下性能剖析工具: perf
linux·运维·ubuntu
鹏大师运维2 小时前
聊聊开源的虚拟化平台--PVE
linux·开源·虚拟化·虚拟机·pve·存储·nfs
watermelonoops3 小时前
Windows安装Ubuntu,Deepin三系统启动问题(XXX has invalid signature 您需要先加载内核)
linux·运维·ubuntu·deepin
滴水之功3 小时前
VMware OpenWrt怎么桥接模式联网
linux·openwrt
ldinvicible4 小时前
How to run Flutter on an Embedded Device
linux
YRr YRr5 小时前
解决Ubuntu 20.04上编译OpenCV 3.2时遇到的stdlib.h缺失错误
linux·opencv·ubuntu