Linux权限大揭秘:深入理解系统安全


🍔前言:

在之前的内容中,我们了解了Linux中的一些简单权限,如root超级账号与普通账户的区别、Linux文件权限管理、文件类型和访问权限以及许多关于修改权限的指令及其规则……今天我们继续进行权限的学习,让我们进一步的了解权限在Linux系统上的作用。

权限内容不完善的可以观看:“权限之舞:Linux安全之道icon-default.png?t=N7T8https://blog.csdn.net/m0_74755811/article/details/133859052?spm=1001.2014.3001.5501

目录

chown指令

chgrp指令

文件类型

file指令

目录下的权限

粘滞位

关于权限的总结

上图是一个文件的基本信息,后9个分别是拥有者、所属组与other的权限。后面两个why分别对应的是拥有者与所属组的信息,当我们想要访问这个文件时,Linux系统会进行用户的匹配,验证我们是哪一种“身份”,然后才开启对应身份相对应的权限。而这个身份的验证匹配只有一次,如果所属组与拥有者都是访问的人时,Linux系统先会从拥有者开始进行识别,如果识别成功则停止反之则继续从所属组、other继续进行依次识别。

 当我们使用chmod指令将拥有者的r(读)权限进行删除时,我们想要进行访问就会被禁止。

但是我们如果将拥有者why改为别的用户,则我们why的账号将以所属组的身份进行访问文件,所以我们就有权限进行访问读file.txt文件。

chmod是对我们文件对应的权限属性进行修改的,而一个文件的访问不仅仅与文件的权限有关,也与访问者的身份有关,那我们怎么进行对“人”进行修改呢?

chown指令

**功能:**修改文件的拥有者
**格式:**chown [参数] 用户名 文件名
我们可以将文件拥有者的信息使用chown指令进行修改。

下面就是一段实例:

我们想将file.txt文件的所属者改为一个叫wyj的普通用户,但是出现了操作不被允许的话语,证明修改失败了,这是怎么回事呢?为什么我是文件的拥有者,想将文件传给别人Linux却不被允许呢?

Linux很好的避免了传输垃圾文件或病毒的问题,当我们给别人文件时,还是需要征得别人的同意的,要不然会出岔子的!!!

那软的不行,我们就来硬的,我们直接使用sudo指令,以root账户的指令进行修改所属人,或者使用su指令切换成root账户进行修改。 所以我们知道普通用户是无法将拥有者进行更改的,必须使用root账户进行修改。root账户没有权限的限制。

chgrp指令

功能:修改文件或目录的所属组
格式:chgrp [参数] 用户组名 文件名
常用选项:-R 递归修改文件或目录的所属组

chgrp是修改文件的所属组的一个指令,与chown指令类似,我们是不能在普通用户上进行修改的,必须要使用root超级用户进行修改。

将所属组、拥有者全部改为root也是可以的,所以在root账户下我们想干什么就干什么。

那拥有者与所属组都可以修改,我们也想修改一下other有没有对应的指令呢?

答案是没有的,但是当我们修改拥有者与所属组时,other中对应的人是一直在改变的,other是其他两种角色的补集。所以修改other就要通过修改拥有者与所属组来实现。

那使用chown与chgrp指令进行修改拥有者与所属组太慢了,我们就可以直接使用chown组合进行全部修改拥有者与所属组。

格式: chown 拥有者:所属组 文件名。

所以在修改的同时,所属组、拥有者以及other都在改变。


文件类型

我们已经将一个文件的绿色部分进行详细的讲述,现在我们继续来了解一下文件类型,也就是文件信息中第一个代表的内容。

我们可以与windows做一个类比,Windows模式下的文件都是以文件后缀进行表示的,而Linux下的文件却是以第一个符号表示的。Linux的文件类型不通过后缀区分(不代表Linux不用后缀) 。

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

当我们进行编译时,我们使用gcc或g++进行编译,但是我们只能编译一些.c或.cpp文件,不能编译txt文件,这就是Linux下使用后缀的情况。可以使用Linux系统直接操作可以不考虑后缀,但是如果使用外部指令时我们就要考虑后缀的作用。而且使用后缀后使用者也可以更直观的看出文件的作用 !

file指令

功能说明:辨识文件类型。
语法:file [选项] 文件或目录…
常用选项:

-c 详细显示指令执行过程,便于排错或分析程序执行的情形。
-z 尝试去解读压缩文件的内容。

我们可以使用file指令识别详细的文件类型:

 甚至可以识别出是什么类型的文件!

目录下的权限

我们使用root账户与普通账户分别全部创建了一个目录:

普通用户创建的目录为test_dir,root账户创建的目录是dir。现在就有一个问题抛出:在权限已知的情况下,我们能否知道怎么才能阻止一个用户去访问一个目录呢?应该删除r、w、x哪一个才可以。

我们可以使用控制变量法进行尝试,首先使用chmod指令删除r权限:

我们可以看出删除r指令后,我们可以随意地进出目录。

然后我们加上r,删除w权限进行试验:

我们也可以看出删除w后也可以照样进行访问目录。

最后我们来试一试x: 只有x才不能被访问。

所以访问一个目录是x权限地作用。

那r地权限是什么呢?w地权限是什么呢?

x可执行权限: 如果目录没有可执行权限, 则无法cd到目录中.

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

但是如果我们想将整个目录进行权限限制,即不让人看也不让人修改,那么我们可以使用chmod指令将权限全部关闭:

我们可以看出test_dir目录已经没有任何权限了,但是当我们使用root账户时就会发现,一切权限都可以无视:

 我们可以看出root账户下,任何地增删查改都可以实现!!!

上面是我新创建的两个东西,一个dir1地目录与一个file.txt的文件,为什么文件的初始权限为664,目录的初始权限为775呢?创建的不是777呢?

粘滞位

一个文件的起始权限是以666开始的,一个目录的起始权限是从777开始的,因为在Linux系统中有一个umask(权限掩码)的东西,权限掩码就是定制一个文件被创建的时候的默认权限。

我们可以在系统中查询我们的权限掩码,输入umask指令即可。我们只关心后三个数字,第一个可以被默认为八进制的标识符。所以002转换成二进制为:000 000 010。

我们所创建的文件目录中的权限是从起始权限中去掉umask中出现的权限。注意:去掉不是减法

所以我们可以得到:

 这就是我们所得到的权限。运算法则为:起始权限 & (~umask) = 最终权限(默认)。


上面是我使用why账户创建的三个文件,以及使用root账户创建的三个文件。然后使用su指令进入另一个wyj普通用户中去。

然后我想要在此目录下增删查改文件或目录是没有作用的,因为wyj账户中没有w权限。这是理所当然的。所以我们就进入到root账户去。

root不想让人看三个文件的任何内容,所以使用chmod将文件权限全部关闭,然后再返回到why的用户下:

我们why用户想要查看root_file的文件时是没有任何权限的,但是我们可以将root账户所创建的文件全部删除掉。因为lesson6目录的是why用户的,目录的权限约束是高于目录中的文件的!!!

总结:一个文件能否被删,并不取决于文件本身!!!而是取决于文件所处的目录拥有者是否拥有w权限!!

所以这样写文件是很危险“不文明”的行为,但是Linux早就避免了次情况:

在家目录下,只有拥有者才有rwx权限!!!那我们如果想要进行文件共享呢?应该在哪个目录下进行操作呢?

Linux系统下专门为共享资源创建了一个目录tmp目录。

给other新增一个权限:t

粘滞位:给目录中的other设置了一个权限位,具有x的意义,同时也进一步对目录中的权限进行特殊的限制:该目录里面的文件,只有root1或者文件的拥有者有权利进行删除。其他人一律不允许!!

[root@localhost ~]# chmod +t /home/ # 加上粘滞位
[root@localhost ~]# ls -ld /home/
drwxrwxrwt. 3 root root 4096 9月 19 16:00 /home/
[root@localhost ~]# su - litao
[litao@localhost ~]$ rm /home/abc.c #litao不能删除别人的文件
rm:是否删除有写保护的普通空文件 "/home/abc.c"?y
rm: 无法删除"/home/abc.c": 不允许的操作

当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由
一、超级管理员删除
二、该目录的所有者删除
三、该文件的所有者删除

关于权限的总结

关于权限的总结:
目录的可执行权限是表示你可否在目录下执行命令。
如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目, 即使目录仍然有-r 读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)
而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限

所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档。


以上就是本次的全部内容,感谢大家的观看,你们的三连关注是博主最大的动力!谢谢!!!

最后

从时代发展的角度看,网络安全的知识是学不完的,而且以后要学的会更多,同学们要摆正心态,既然选择入门网络安全,就不能仅仅只是入门程度而已,能力越强机会才越多。

因为入门学习阶段知识点比较杂,所以我讲得比较笼统,大家如果有不懂的地方可以找我咨询,我保证知无不言言无不尽,需要相关资料也可以找我要,我的网盘里一大堆资料都在吃灰呢。

干货主要有:

①1000+CTF历届题库(主流和经典的应该都有了)

②CTF技术文档(最全中文版)

③项目源码(四五十个有趣且经典的练手项目及源码)

④ CTF大赛、web安全、渗透测试方面的视频(适合小白学习)

⑤ 网络安全学习路线图(告别不入流的学习)

⑥ CTF/渗透测试工具镜像文件大全

⑦ 2023密码学/隐身术/PWN技术手册大全

扫码领取

本文转自 https://blog.csdn.net/m0_74755811/article/details/134056158?spm=1001.2100.3001.7377&utm_medium=distribute.pc_feed_blog_category.none-task-blog-classify_tag-14-134056158-null-null.nonecase&depth_1-utm_source=distribute.pc_feed_blog_category.none-task-blog-classify_tag-14-134056158-null-null.nonecase,如有侵权,请联系删除。

  • 7
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值