Linux文件权限 出炉啦, 快进来学习收藏吧!

前言

这是我听老师讲课做的笔记,考试要看的。 这是视频地址
作者:RodmaChen
关注我的csdn博客,更多Linux笔记知识还在更新

一. 查看文件的权限与归属

1.1 介绍

尽管在Linux系统中一切都是文件,但是每个文件的类型不尽相同,因此Linux系统使用了不同的字符来加以区分,常见的字符如下所示。

字符 介绍
- 普通文件
d 目录文件
l 链接文件
b 块设备文件
c 字符设备文件
p 管道文件

在这里插入图片描述

1.2 修改文件的权限——chmod命令

  1. chmod命令:用于更改文件对于某类用户的操作权限

在这里插入图片描述

在这里插入图片描述

命令 功能
u+x 增加文件属主st01的执行权限
g-w 去除文件属组class1的写权限
o=x 设置其他用户的文件权限为可执行
u+x,o+w 设置用户拥有执行权限,其他用户拥有写入权限
ug+x 设置用户和用户组拥有执行的权限
  1. 不过我们一般都使用数字表示权限也可以轻松的进行权限的设定,如下图test文件

在这里插入图片描述

  1. 增加文件属主test的执行权限(x)

    上面图表已经给出读的权限为数字4写的权限为数字2执行的权限为数字1,那么三种权限分配的用户最高权限就是777

在这里插入图片描述

效果:原来是664,增加x后变成了764

在这里插入图片描述

1.3 修改文件的归属——chown命令

要想改变一个文件对某些用户的权限,除了可以修改它的权限之外,还有一个方案就是修改文件属于哪个用户用户组

  1. chown命令:用于设置文件的属主和属组

  2. 命令格式:chown OWNER[:[GROUP]] FILE…

  3. 列:

(1) 设置文件afile属主为用户st01

# chown st01 afile

(2) 设置文件afile属主st03,并设置文件的属组class2

# chown st03:cl ass2 afile

(3)设置文件afile属组为用户组class1

# chown :class1 afile

二.文件的特殊权限

在复杂多变的生产环境中,单纯设置文件的rwx权限无法满足我们对安全和灵活性的需求,因此便有了SUID、SGID与SBIT的特殊权限位。这是一种对文件权限进行设置的特殊功能,可以与一般权限同时使用,以弥补一般权限不能实现的功能。

2.1 SUID特殊权限介绍

  1. SUID:对应user的权限位置,当s这个标志出现在文件所有者的x权限上时,例如文件权限状态“-rwsr-xr-x”,此时就称为Set UID,简称为SUID的特殊权限。

  2. SUID有这样的限制和功能:

  • SUID权限仅对二进制程序有效;
  • 执行者对于该程序需要具有**x的可执行权限**;
  • 本权限仅在执行该程序的过程中有效;
  • 执行者将具有该程序所有者的权限。
  1. 作用:所有用户都可以执行passwd命令来修改自己的用户密码,而用户密码保存在/etc/shadow文件中。除了root管理员以外,所有用户都没有查看或编辑该文件的权限。

在这里插入图片描述

  1. 在使用passwd命令时如果加上SUID特殊权限位,就可让普通用户临时获得程序所有者的身份,把变更的密码信息写入shadow文件中。因此这只是一种有条件的、临时的特殊权限授权方法。

在这里插入图片描述

  1. 实例:可以使用chmod命令设置文件的特殊权限,在数值表示的权限前加4表示添加SUID特殊权限s的数字表示是4.

在这里插入图片描述

直接数值表示

在这里插入图片描述

注意;删除SUID特殊权限的时候,直接设置权限即可

2.2 SGID特殊权限介绍

  1. SGID:对应group权限位置,当s标志出现在文件所有者的x权限时称为SUID,那么s出现在用户组x权限时称为SGID。(U
    表示user,G表示group)。

  2. SGID有如下功能:

  • 让执行者临时拥有属组的权限(对拥有执行权限的二进制程序进行设置);
  • 在某个目录中创建的文件自动继承该目录的用户组(只可以对目录进行设置)。
  • SGID的第一种功能是参考SUID而设计的,不同点在于执行程序的用户获取的不再是文件所有者的临时权限,而是获取到文件所属组的权限。
  1. 举例:修改文件夹的SGID特殊权限,2可以表示SGID的特殊权限。(用法跟SUID差不多)

(1)创建test目录,利用g+s设置SGID特殊权限

在这里插入图片描述

(2)在权限的数字前面加2可以设置SGID的特殊权限

在这里插入图片描述

2.3 SBIT特殊权限介绍

  1. SBIT:对应other用户权限位置

  2. SBIT(Sticky Bit)特殊权限位(特殊权限位之粘滞位)。SBIT特殊权限位可确保用户只能删除自己的文件,而不能删除其他用户的文件。换句话说,当对某个目录设置了SBIT粘滞位权限后,那么该目录中的文件就只能被其所有者执行删除操作了。SBIT目前只对目录有效。

  3. RHEL 7系统中的/tmp作为一个共享文件的目录,默认已经设置了SBIT特殊权限位,因此除非是该目录的所有者,否则无法删除这里面的文件。

在这里插入图片描述

  1. 举例:修改文件夹的SBIT特殊权限,1可以表示SGID的特殊权限

    (1)利用o+t设置SBIT特殊权限

在这里插入图片描述

(2)在权限的数字前面加1可以设置SBIT的特殊权限

在这里插入图片描述

三.文件的隐藏属性

  • Linux系统中的文件除了具备一般权限和特殊权限之外,还有一种隐藏权限,即被隐藏起来的权限,默认情况下不能直接被用户发觉。
  • 有用户曾经在生产环境中碰到过明明权限充足但却无法删除某个文件的情况,或者仅能在日志文件中追加内容而不能修改或删除内容,这在一定程度上阻止了黑客篡改系统日志的图谋,因此这种“奇怪”的文件也保障了Linux系统的安全性。

3.1 设置隐藏权限——chattr命令

  1. chattr命令:用于设置文件的隐藏权限。 如果想要把某个隐藏功能添加到文件上,则需要在命令后面追加“+参数”,如果想要把某个隐藏功能移出文件,则需要追加“-参数”。

  2. 命令格式:chattr [选项] 文件

  3. 常用选项:

选项 功能
i 无法对文件进行修改;若对目录设置了该参数,则仅能修改其中的子文件内容而不能新建或删除文件
a 仅允许补充(追加)内容,无法覆盖/删除内容(Append Only)
  1. 测试:创建测试文件,进行特殊权限的添加,测试删除和修改

在这里插入图片描述

在这里插入图片描述

3.2 显示隐藏文件——lsattr命令

  1. lsattr命令:用于显示文件的隐藏权限,在Linux系统中,文件的隐藏权限必须使用lsattr命令来查看
    ,平时使用的ls之类的命令则看不出端倪。
  2. 命令格式:lsattr [选项] 文件
  3. 一旦使用lsattr命令后,文件上被赋予的隐藏权限马上就会原形毕露。此时可以按照显示的隐
    藏权限的类型(字母),使用chattr命令将其去掉。

在这里插入图片描述

本人博客:https://blog.csdn.net/weixin_46654114
本人b站求关注:https://space.bilibili.com/391105864
转载说明:跟我说明,务必注明来源,附带本人博客连接。

请给我点个赞鼓励我吧
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_46654114/article/details/107089592
今日推荐