初识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 过滤:


相关推荐
hjjdebug1 小时前
linux 下 signal() 函数的用法,信号类型在哪里定义的?
linux·signal
其乐无涯1 小时前
服务器技术(一)--Linux基础入门
linux·运维·服务器
Diamond技术流1 小时前
从0开始学习Linux——网络配置
linux·运维·网络·学习·安全·centos
斑布斑布1 小时前
【linux学习2】linux基本命令行操作总结
linux·运维·服务器·学习
Spring_java_gg1 小时前
如何抵御 Linux 服务器黑客威胁和攻击
linux·服务器·网络·安全·web安全
✿ ༺ ོIT技术༻1 小时前
Linux:认识文件系统
linux·运维·服务器
会掉头发2 小时前
Linux进程通信之共享内存
linux·运维·共享内存·进程通信
我言秋日胜春朝★2 小时前
【Linux】冯诺依曼体系、再谈操作系统
linux·运维·服务器
饮啦冰美式2 小时前
22.04Ubuntu---ROS2使用rclcpp编写节点
linux·运维·ubuntu