首页 Linux教程【Linux】掌权如鹰:Linux权限天空的翱翔秘籍

【Linux】掌权如鹰:Linux权限天空的翱翔秘籍

运维派隶属马哥教育旗下专业运维社区,是国内成立最早的IT运维技术社区,欢迎关注公众号:yunweipai
领取学习更多免费Linux云计算、Python、Docker、K8s教程关注公众号:马哥linux运维

【Linux】掌权如鹰:Linux权限天空的翱翔秘籍


引言

在Linux的广阔天空中,权限管理犹如一只翱翔的雄鹰,掌控着系统的安全与秩序。掌握Linux权限,不仅能让你的系统管理更加得心应手,还能有效防止未授权访问和数据泄露。本文将带你深入探索Linux权限的奥秘,助你成为权限管理的高手。

一、Linux权限管理基础

1.1 权限的概念以及重要性

Linux系统是一个多用户操作系统,为了保护系统资源不被未授权的用户访问或破坏,引入了权限管理机制。权限管理确保系统资源的安全性和稳定性,防止未经授权的访问和修改。换言之,一件事是否允许被你做,这就叫权限。

1.2 不同用户类别的权限

1.2.1 用户的分类

在Linux中用户分为两类:

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

1.2.2 用户的切换

由于普通用户在进行操作时可能会受到权限的限制,所以这时候进行用户的切换说不定就可以操作成功。那普通用户和超级用户之间是如何切换的呢?

普通用户切超级用户

语法:su / su –
说明:让普通用户切换到超级用户,切换时会提示普通用户输入 root 的密码(tips : 密码输入时没有回显)。

【Linux】掌权如鹰:Linux权限天空的翱翔秘籍插图
【Linux】掌权如鹰:Linux权限天空的翱翔秘籍插图1

超级用户切普通用户

语法:su [用户名]
说明:让 超级用户/普通用户 切换到普通用户,由于超级用户权限很高,所以不需要输入密码就可以切换,而普通用户切换就需要输入对方的密码。

【Linux】掌权如鹰:Linux权限天空的翱翔秘籍插图2

这里需要注意的是,我们使用su来切换用户,只是进行了身份切换,路径并没有变,如果想改变路径,我们可以使用su -(本质上是重新登陆了)。

切换用户就好比给自己套了一层衣服,一层一层叠buff。那如何脱掉衣服呢?我们可以使用exit或者Ctrl+D来退出。

【Linux】掌权如鹰:Linux权限天空的翱翔秘籍插图3

1.2.3 sudo 指令

语法:sudo 指令X
功能:让普通用户通过sudo对指令X进行提权,以超级用户的身份去执行该命令。
那这个指令有点逆天,难道说我们普通人也能翻身有超能力了?并没有那么简单,我们在刚开始adduser的时候,并没有在白名单里,系统默认不相信我们。只有root把我们加到白名单里,我们才能用sudo进行提权。
如下图,hjz用户未被加入到sudoers file。

【Linux】掌权如鹰:Linux权限天空的翱翔秘籍插图4

1.3 权限的表示方法

在linux中我们如何表示权限呢?其实很简单,只需要记住角色+属性即可。

我们可以通过 ls – l 指令来查看当前目录下的所有文件。

【Linux】掌权如鹰:Linux权限天空的翱翔秘籍插图5
【Linux】掌权如鹰:Linux权限天空的翱翔秘籍插图6

1.3.1 Linux中的角色

在Linux中共分三个角色:

  • • 拥有者(u — User):文件和文件目录所有者。
  • • 所属组(g — Group):文件和文件目录所有者所在的组的用户。
  • • 其他人(o — Others):其他用户。
【Linux】掌权如鹰:Linux权限天空的翱翔秘籍插图7

其中黄色框起来的是拥有者,紫色框起来的是所属组,其他人并未出现在属性中。当用户操作文件时,它会先看用户是不是拥有者,如果不是再看是不是所属组,如果都不是那就是其他人。

还有一个比较重要的一点,一次只能匹配一个角色。例如:

【Linux】掌权如鹰:Linux权限天空的翱翔秘籍插图8

此时我们拥有者是没有写权限的,但是所属组有,那我们可不可以写文件呢?答案是不能,因为一次智能匹配一个角色,我们root匹配上了拥有者。(这里由于我拿root来演示,所以还会写进去,普通用户是做不到的)

1.3.2 文件类型

【Linux】掌权如鹰:Linux权限天空的翱翔秘籍插图9

如图所示,蓝色框起来的部分就是代表着文件的类型,其中文件类型分为以下几种:

  • • -:普通文件
  • • d:文件夹
  • • l:软链接(类似Windows的快捷方式)
  • • b:块设备文件(例如硬盘、光驱等)
  • • p:管道文件
  • • c:字符设备文件(例如屏幕等串口设备)
  • • s:套接口文件

1.3.3 基本权限

【Linux】掌权如鹰:Linux权限天空的翱翔秘籍插图10

主播主播,有没有能代表文件的基本权限的字符推荐一下?有的兄弟有的,像这样的字符一共有九位。如图所示,红色框起来的九个字符代表着文件的基本权限。

前三位代表着拥有者的权限、中间三位代表所属组的权限,后三位代表其他人的权限。

每三位都分别由r、w、x来控制,如果有该权限就标记为该字母,否则标记为-。

  • • r(读/4):Read,对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限。
  • • w(写/2):Write,对文件而言,具有修改文件内容的权限;对目录来说,具有删除或移动目录内文件的权限。
  • • x(执行/1):Execute,对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限。
  • • -:表示不具有该项权限。

二、权限的修改

首先声明一点,只有文件拥有者和超级用户才可以修改文件权限。

2.1 chmod 指令

语法:chmod [参数] 权限 文件名
功能:设置文件的访问权限。
常用选项
-r:递归修改目录文件的权限。

【Linux】掌权如鹰:Linux权限天空的翱翔秘籍插图11

其中u代表拥有者、g代表所属组、o代表其他人,通过+、-来增减。一次性可以修改多个权限。

这里要介绍另一个表示权限的方法——八进制数值表示法。

2.1.1 八进制数值表示法

  • • 每个权限位(读、写、执行)可以用一个八进制数字来表示:
    • • 读(r):4
    • • 写(w):2
    • • 执行(x):1
    • • 空(-):0
  • • 例如,权限rwxr-xr--可以表示为八进制数值754(rwx:4+2+1=7、r-x:4+0+1=5、r--:4+0+0=4)

所以我们命令操作也可以这么写:chmod [想改成的八进制数值] 文件

【Linux】掌权如鹰:Linux权限天空的翱翔秘籍插图12

2.2 chown 指令

语法:chown [参数] 用户名 文件名
功能:修改文件的拥有者。
实例
chown hjz hello.txt:将文件hello.txt的拥有者改为hjz。

【Linux】掌权如鹰:Linux权限天空的翱翔秘籍插图13

2.2 chgrp 指令

语法:chgrp [参数] 用户组名 文件名
功能:修改文件或目录的所属组。
实例
chgrp hjz hello.txt:将文件hello.txt的所属组改为hjz。

【Linux】掌权如鹰:Linux权限天空的翱翔秘籍插图14

2.3 umask 指令

我们在创建一个新的文件或目录的时候有没有初始默认权限呢?先给出答案,是有的,并且:

  • • 默认给普通文件的起始权限是666。
  • • 默认给目录的起始权限是777。
【Linux】掌权如鹰:Linux权限天空的翱翔秘籍插图15

我们创建了一个文件和目录,但发现并不是666和777,而是644和755,这是为什么呢?这就要提出一个叫权限掩码的东西了。

2.3.1 权限掩码

首先如何查看权限掩码?通过umask指令。

语法:umask 权限值
功能:查看或修改权限掩码。如果没输入权限值就是查看当前掩码。

【Linux】掌权如鹰:Linux权限天空的翱翔秘籍插图16

从图中我们可以看到我的权限掩码是022(第一个0代表是八进制)。可这又和那个有什么关系呢,也不一样啊。别着急,我们慢慢分析。

2.3.2 如何获得最终权限

首先我们输入umask获得权限掩码,然后再通过公式最终权限 = 初始权限 & (~权限掩码)

拿我的举例

【Linux】掌权如鹰:Linux权限天空的翱翔秘籍插图17

三、目录的权限以及粘滞位

3.1 目录的权限

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

有了上面的说明,我们首先要知道,文件的删除并不是由文件本身决定,而是它所在的目录决定。

当我们在创建一个新用户时,系统会在/home自动创建一个用户的家目录。

【Linux】掌权如鹰:Linux权限天空的翱翔秘籍插图18

我们可以观察到这个目录对others的权限是0,这说明其他人不可以进入我的家目录,更不可能增删查改文件。

我们有时需要进行多个用户之间的文件数据共享,这个时候就需要超级用户在根目录下创建一个共享的文件,并且把其他人的权限改为7,保证普通用户可以进入目录,并且可以查看和创建文件。

但是问题来了,如果有内鬼怎么办,别忘了能创建就可以删除啊。就比如wow辛辛苦苦写的文件,cyy不想干了,把文件删了。这种情况该怎么办呢,删除和创建查看绑在一起了,这个时候粘滞位就派上作用了。

3.2 粘滞位

如何使用粘滞位呢?很简单,只需要chmod +t 即可。

语法:chmod +t
功能:使该目录下的文件只能由超级管理员、该目录的所有者或该文件的所有者删除。
实例
我们根目录下系统自带了一个tmp目录供我们实现多用户文件数据共享操作。

【Linux】掌权如鹰:Linux权限天空的翱翔秘籍插图19

本文链接:https://www.yunweipai.com/47261.html

网友评论comments

发表回复

您的电子邮箱地址不会被公开。

暂无评论

Copyright © 2012-2022 YUNWEIPAI.COM - 运维派 京ICP备16064699号-6
扫二维码
扫二维码
返回顶部