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

这篇具有很好参考价值的文章主要介绍了Linux权限大揭秘:深入理解系统安全。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Linux权限大揭秘:深入理解系统安全,Linux,linux,运维,服务器,系统安全,安全

W...Y的主页 😊

代码仓库分享💕 

Linux权限大揭秘:深入理解系统安全,Linux,linux,运维,服务器,系统安全,安全


🍔前言:

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

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

目录

chown指令

chgrp指令

文件类型

file指令

目录下的权限

粘滞位

关于权限的总结

Linux权限大揭秘:深入理解系统安全,Linux,linux,运维,服务器,系统安全,安全

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

Linux权限大揭秘:深入理解系统安全,Linux,linux,运维,服务器,系统安全,安全 当我们使用chmod指令将拥有者的r(读)权限进行删除时,我们想要进行访问就会被禁止。

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

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

chown指令

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

下面就是一段实例:

Linux权限大揭秘:深入理解系统安全,Linux,linux,运维,服务器,系统安全,安全

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

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

那软的不行,我们就来硬的,我们直接使用sudo指令,以root账户的指令进行修改所属人,或者使用su指令切换成root账户进行修改。Linux权限大揭秘:深入理解系统安全,Linux,linux,运维,服务器,系统安全,安全 所以我们知道普通用户是无法将拥有者进行更改的,必须使用root账户进行修改。root账户没有权限的限制。

chgrp指令

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

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

Linux权限大揭秘:深入理解系统安全,Linux,linux,运维,服务器,系统安全,安全

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

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

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

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

Linux权限大揭秘:深入理解系统安全,Linux,linux,运维,服务器,系统安全,安全

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

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


文件类型

Linux权限大揭秘:深入理解系统安全,Linux,linux,运维,服务器,系统安全,安全

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

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

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

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

file指令

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

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

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

Linux权限大揭秘:深入理解系统安全,Linux,linux,运维,服务器,系统安全,安全 甚至可以识别出是什么类型的文件!

目录下的权限

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

Linux权限大揭秘:深入理解系统安全,Linux,linux,运维,服务器,系统安全,安全

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

我们可以使用控制变量法进行尝试,首先使用chmod指令删除r权限:Linux权限大揭秘:深入理解系统安全,Linux,linux,运维,服务器,系统安全,安全

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

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

Linux权限大揭秘:深入理解系统安全,Linux,linux,运维,服务器,系统安全,安全

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

最后我们来试一试x:Linux权限大揭秘:深入理解系统安全,Linux,linux,运维,服务器,系统安全,安全 只有x才不能被访问。

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

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

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

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

 但是如果我们想将整个目录进行权限限制,即不让人看也不让人修改,那么我们可以使用chmod指令将权限全部关闭:Linux权限大揭秘:深入理解系统安全,Linux,linux,运维,服务器,系统安全,安全

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

Linux权限大揭秘:深入理解系统安全,Linux,linux,运维,服务器,系统安全,安全 我们可以看出root账户下,任何地增删查改都可以实现!!!

Linux权限大揭秘:深入理解系统安全,Linux,linux,运维,服务器,系统安全,安全上面是我新创建的两个东西,一个dir1地目录与一个file.txt的文件,为什么文件的初始权限为664,目录的初始权限为775呢?创建的不是777呢?

粘滞位

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

Linux权限大揭秘:深入理解系统安全,Linux,linux,运维,服务器,系统安全,安全

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

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

所以我们可以得到:

Linux权限大揭秘:深入理解系统安全,Linux,linux,运维,服务器,系统安全,安全 这就是我们所得到的权限。运算法则为:起始权限 & (~umask) = 最终权限(默认)。


Linux权限大揭秘:深入理解系统安全,Linux,linux,运维,服务器,系统安全,安全

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

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

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

Linux权限大揭秘:深入理解系统安全,Linux,linux,运维,服务器,系统安全,安全

Linux权限大揭秘:深入理解系统安全,Linux,linux,运维,服务器,系统安全,安全

我们why用户想要查看root_file的文件时是没有任何权限的,但是我们可以将root账户所创建的文件全部删除掉。因为lesson6目录的是why用户的,目录的权限约束是高于目录中的文件的!!!Linux权限大揭秘:深入理解系统安全,Linux,linux,运维,服务器,系统安全,安全

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

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

Linux权限大揭秘:深入理解系统安全,Linux,linux,运维,服务器,系统安全,安全

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

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

Linux权限大揭秘:深入理解系统安全,Linux,linux,运维,服务器,系统安全,安全

给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命令,但仍然没有权限读出目录下的文档。


以上就是本次的全部内容,感谢大家的观看,你们的三连关注是博主最大的动力!谢谢!!! 文章来源地址https://www.toymoban.com/news/detail-715535.html

到了这里,关于Linux权限大揭秘:深入理解系统安全的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 深入理解Linux文件系统

                                                                🎬慕斯主页 : 修仙—别有洞天                                                            ♈️ 今日夜电波: 晴る—ヨルシカ                                    

    2024年01月19日
    浏览(29)
  • 【Linux】深入理解文件系统

    收录于【Linux】文件系统 专栏 关于文件描述符与文件重定向的相关内容可以移步 文件描述符与重定向操作。 可以到 浅谈文件原理与操作 了解文件操作的系统接口。 想深入理解文件缓冲区还可以看看文件缓冲区 。 目录 系列文章 磁盘 结构介绍 定位数据 抽象管理 文件系

    2024年02月10日
    浏览(31)
  • Linux 深入理解Linux文件系统与日志分析

    文件数据 包含 元信息(即不包含文件名的文件属性)    和    实际数据 文件元信息存储在 inode(索引节点)里, 文件实际数据存储在 block(块)里; 文件名存储在目录块里 stat  文件名   stat  文件名      ls -i 文件名   df -i Linux系统不使用 文件名 识别文件,而 使用 inode号 来识

    2024年04月25日
    浏览(30)
  • 【Linux】带你深入理解文件系统

    目录 文件系统 背景知识 磁盘结构 磁盘的存储结构 磁盘抽象(逻辑,虚拟)结构 BootBlock: Super block Data blocks inode Table BlcokBitmap inode Bitmap Group Descriptor Table  文件名和inode编号 硬链接和软链接 软链接 硬链接 取消软硬链接unlink stderr 我们讲解文件系统之前还需要说一些背景知识,

    2024年02月15日
    浏览(30)
  • 【Linux操作系统】深入理解Linux磁盘分区和挂载

    Linux磁盘分区和挂载是系统管理中非常重要的一部分,它们可以帮助我们更好地管理存储空间和文件系统。本文将详细介绍Linux磁盘分区和挂载的概念、原理以及实践操作,并提供相应的例子、代码和指令,帮助读者全面了解和掌握这两个关键概念。 磁盘分区是将物理硬盘划

    2024年02月14日
    浏览(36)
  • Linux Centos系统 磁盘分区和文件系统管理 (深入理解)

    作者主页: 点击! Linux专栏:点击! 磁盘 在Linux系统中,磁盘是一种用于存储数据的物理设备,可以是传统的硬盘驱动器(HDD)或固态硬盘(SSD)。Linux将磁盘设备视为块设备,它们通常以文件形式表示在 /dev 目录下。 文件系统 在计算机系统中, 文件系统 定义了如何存储

    2024年03月15日
    浏览(40)
  • 【Linux】深入理解系统文件操作(1w字超详解)

    ❓是不是只有CC++有文件操作呢?💡Python、Java、PHP、go也有,他们的文件操作的方法是不一样的啊 1.1对于文件操作的思考: 我们之前就说过了: 文件=内容+属性 针对文件的操作就变成了对内容的操作和对属性的操作 ❓当文件没有被操作的时候,文件一般会在什么位置?💡

    2024年02月07日
    浏览(36)
  • 深入理解Linux内核——内存管理(4)——伙伴系统(1)

    提要:本系列文章主要参考 MIT 6.828课程 以及两本书籍 《深入理解Linux内核》 《深入Linux内核架构》 对Linux内核内容进行总结。 内存管理的实现覆盖了多个领域: 内存中的物理内存页的管理 分配大块内存的伙伴系统 分配较小内存的slab、slub、slob分配器 分配非连续内存块的

    2024年02月10日
    浏览(37)
  • 【Linux深入剖析】冯·诺依曼体系结构以及操作系统的深入理解

    🍁你好,我是 RO-BERRY 📗 致力于C、C++、数据结构、TCP/IP、数据库等等一系列知识 🎄感谢你的陪伴与支持 ,故事既有了开头,就要画上一个完美的句号,让我们一起加油 冯·诺依曼体系结构,也被称为普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储

    2024年03月17日
    浏览(34)
  • 【Linux | Shell】Linux 安全系统 —— 用户、组、文件权限 - 阅读笔记

    Linux 安全系统的核心是 用户账户 。 用户权限是通过创建用户时分配的用户 ID( user ID, UID)来跟踪的。 UID 是个数值,每个用户都有一个唯一的 UID。 用户在登录系统时是使用登录名( login name)来代替 UID 登录的。 下面介绍 Linux 系统使用哪些 特定文件和工具 来跟踪及管理

    2024年02月13日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包