【操作系统】一篇文章带你理清Linux中的权限!

🎬 乀艨ic:个人主页

⛺️说是高产但是还是过了快半个月才更新()

⭐️来看看这次的博客吧~


🌳前言

上次注意到发Linux相关的点击量比其他的多很多,那就最近多更几篇Linux相关的吧()
注:Linux的不同发行版本的指令可能有所不同,本次是按照CentOS7的标准来进行追述的。

在这里插入图片描述

🌳Linux 权限概念

在谈论什么是Linux的权限管理之前,我们肯定要明白 Linux 中权限的概念。当我们在 Linux 的控制台输入指令 whoami 的时候,能看到你当前登录的用户名,如下:

在这里插入图片描述
在这里插入图片描述

Linux下只有两种用户:超级用户(root)、普通用户
超级用户:可以在 Linux 系统下做任何事情,不受限制
普通用户:在 Linux 下做有限的事情。
超级用户的命令提示符是“#”,普通用户的命令提示符是“$”

简单的说,当你的用户名是root时,你就是超级用户,拥有着最高的权限,如果不是就会有着相对较少的权限,当然具体的体现就要看下文的显示了。

🌲su 指令

语法:su [用户名]

功能: 切换用户。
例如,要从root用户切换到普通用户user,则使用 su user。 要从普通用户user切换到root用户则使用 su root(root可以省略),此时系统会提示输入root用户的密码。

🌳Linux 权限管理

谈完 Linux 权限的概念,我们来看看 Linux 到底是怎么控制权限的。

🌲文件访问者的分类

Linux 中的所有文件将访问者分为了三类:

文件和文件目录的所有者:u—User
文件和文件目录的所有者所在的组的用户:g—Group
其它用户:o—Others

拥有者(user)所属组(group)其他(other)

🌲访问权限类型

谈完文件对访问者的划分,我们再看看文件对于权限的划分。
我们先通过观察一个文件的详细属性来进行讲述:

在这里插入图片描述

我们注意到任意一个文件的详细属性最前面都有10个字母,我们再看看这10个字母代表着什么。

在这里插入图片描述

如上图。我们得知第一个表示的是文件的类型,而后9个字母以三个三个为一组,分别代表了拥有者,所属组和其他的三个权限的拥有情况,而在10个字母与一个数字之后,标注着这个文件的拥有者跟所属组的相关情况。

🍃基本权限

我们再来看看表示权限的九个字母的具体含义:

i.读(r):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
ii.写(w):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
iii.执行(x):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
iv.“—”表示不具有该项权限

🌲文件访问权限表示方式

Linux 中对文件权限的描述有两种形式:

🍃用字符去描述文件权限

在这里插入图片描述

🍃用8进制数字去描述文件权限

在这里插入图片描述

🌲文件访问权限相关设置

既然我们已经了解了文件的权限,那么文件的权限是否可以进行人为更改呢?答案当然是肯定的,我们接着再去认识几个更改权限的指令。

🍃chmod 指令

功能: 设置文件的访问权限

格式:chmod [参数] 权限 文件名

常用选项:

R -> 递归修改目录文件的权限
说明:只有文件的拥有者和root才可以改变文件的权限

chmod 使用格式:
① 用户表示符+/-=权限字符

+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限
用户符号:
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户

实例:

在这里插入图片描述

在这里插入图片描述

这里可以看到我通过 chmod 指令给dir文件的所属组跟其他都加上了写的权限。

②三位8进制数字

实例:

在这里插入图片描述

这里可以看到我通过 chmod 指令给dir文件的所有权限都清空了。

🍃umask

这个时候我们去谈另一个问题,如果我新建一个普通文件跟一个目录,如下图:

在这里插入图片描述

这里可以注意到,这两种类型的文件的默认初始权限是不一样的,目录文件展现出来的是 755,而一般文件是 644
但其实目录文件的默认权限是 777,而一般文件是 666 ,而展现出来的权限跟默认权限不同是因为在 Linux 中存在一个叫做权限掩码的东西—— umask

在这里插入图片描述如上图,只要你在 Linux 的控制台输入 umask 就可以看到本机的权限掩码,这四位数字的后三位是三个八进制数字表示了对拥有者,所属组跟其他的掩码作用。

起始权限 & (~umask) = 最终权限

就造成了我们看到的最终现象。

当然umask也是可以自己设置的,如下:

在这里插入图片描述

umask [三个8进制数字]
即可

🍃chown 指令

功能:修改文件的拥有者

格式:chown [参数] 用户名 文件名

实例:

在这里插入图片描述

这样就把 test 文件的拥有者从 root 改为了 fmsaier。

🍃chgrp 指令

**功能:**修改文件或目录的所属组

格式:chgrp [参数] 用户组名 文件名

实例:

在这里插入图片描述

这样就把 test 文件的所属组从 root 改为了 fmsaier。

🌲目录的权限

这里特意强调一下对于目录来说的 rwx 分别代表着什么。

可执行权限: 如果目录没有可执行权限, 则无法cd到目录中.
可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容.
可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件.

可是这样有一个问题:只要我拥有你目录的 w 权限,我就可以在目录里面随意的删除不属于我的文件,甚至是我不能读写的文件。如下:

在这里插入图片描述

可以看到身为普通用户的 fmsaier 因为具有目录 dir 的 w 权限,而没有 dir 内 test 的 r 权限,所以无法去读取 test 内的内容,但是居然可以将这个无法读取的文件删除。

为了解决这个问题,就引出了下一个新的概念——粘滞位

🌲粘滞位

我们直观看一下粘滞位的作用,如下:

在这里插入图片描述

可以看到同样的情况下,我们给目录 dir 加上 t 权限,其他用户就无法去删除不属于他的文件了,而这里的 t 权限就是我们说的 粘滞位

当一个目录被设置为"粘滞位"(用chmod +t 目录),则该目录下的文件只能由

一、超级管理员删除
二、该目录的所有者删除
三、该文件的所有者删除

在这里插入图片描述

由此便解决了我们刚刚提出的问题。

在这里插入图片描述

🌳结尾

这就是Linux权限的所有内容了,以后还会更新更多关于Linux操作系统的相关知识,点一个关注避免错过哦~

感谢观看,喜欢的话可以给一个大大的三连哦~
期待我们的下次相遇,喜欢的请点个关注再走哦!之后会持续更新更多的内容!
个人主页:传送门

在这里插入图片描述

  • 18
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值