首页 > 系统相关 >4、Linux学习之文件权限(二)

4、Linux学习之文件权限(二)

时间:2023-12-10 17:25:10浏览次数:29  
标签:文件 SUID ACL Linux SGID 权限 目录

二、基本权限ACL

ACL(Access Control List)为访问控制列表。ACL可以设置特定用户或用户组对于一个文件或文件夹的操作权限。

 即ACL用于设定某个用户针对文件的权限

 权限的优先级顺序:所有者-->ACL自定义用户-->ACL自定义组-->其他人

1、查看ACL权限:getfacl命令

2、设置ACL权限:setfacl命令

①  “-m”参数设置ACL权限

用户设置ACL权限命令格式:setfacl -m u:用户名:权限  文件名

设置ACL权限命令格式:  setfacl -m g:组名:权限  文件名

(当使用ll命令查看文件时,权限字符位最后出现“+”,说明该文件含有ACL权限)

 

②  删除ACL权限

  • 删除指定的ACL权限:

          命令格式:setfacl -x u:用户名 文件名  # 删除指定用户的ACL权限

                               setfacl -x g:组名 文件名    # 删除指定组的ACL权限

  • 删除所有的ACL权限:

命令格式:setfacl -b 文件名

③  默认ACL权限(default)

指的是针对父目录而言,新建的文件和子目录会继承父目录的ACL权限。

 命令格式:setfacl -m d:u:用户名:权限 -R 文件名

   注意:默认权限,只能赋予目录,即命令中的文件名为目录的名称

3、 最大有效权限mask

  •  给用户或用户组设定的ACL权限并不是真正的设定权限,而是通过设定的ACL权限与mask权限进行“”运算后,获得用户的真正权限

    系统默认mask权限rwx(一般不需要更改),此时,任何权限与mask权限进行与运算,结果仍是权限本身。

  • mask是用来指定最大有效权限。可以理解为:用户和用户组所设定的权限必须在mask权限设定的范围内才能生效。

        注意:一般不会去修改系统默认的mask权限,但是能够修改,命令格式如下:

        setfacl -m m:权限 文件名

 

三、高级权限

1、Set UID:SUID权限

SUID权限:在文件可执行的二进制文件)的所有者属性的x权限位上标志为s时,表示该文件具有SUID权限。

  SUID权限的作用是:

    拥有可执行文件的执行权限普通用户,在运行该执行文件的过程时,

    暂时获得该执行文件的所有者的权限,执行结束后,释放权限。

  SUID权限是在执行的过程中生效

  总结SUID的限制与功能,如下:

  •  SUID权限仅对二进制程序(binary program)有效
  •  执行者对该程序需要具有x的可执行权限
  •  SUID权限仅在执行该程序的过程中有效(run-time)
  •  执行过程中执行者将具有该程序拥有者(owner)的权限

  警告:SUID仅可用在可执行程序(binary program)上,不建议用在shell script上;

     不能用在目录上

 

设置SUID权限的方法:(基本权限的数字表示法前加的4代表SUID权限

方法一chmod u+s 文件名 (权限的字符模式,在user处添加s

方法二chmod 4755 文件名 (权限的数字模式,在基本权限的数字前加4

      注意:当文件SUID的标志s不是小写而是大写S时,说明无执行权限x,即为空,无效。

取消SUID权限的方法:  chmod u-s 文件名

 

 

2、Set GID:SGID权限

  SGID权限:在文件所属组x权限位上标志位s时,表示该文件具有SGID权限。

  SGID权限可以作用于可执行的二进制文件,也可以作用于目录

  A、SGID对于文件的含义:(类似于SUID的作用)

    •  只有可执行的二进制程序才能设置SGID权限
    •     执行者对该程序(设置了SGID权限)需要具有x的可执行权限
    •     在执行该程序的时候,执行者的所属组会临时变成该程序文件的所属组
    •  SGID权限只在该程序执行过程中有效,即所属组身份的改变只在执行过程有效

   例说明:普通用户执行locate命令(locate命令设置了SGID权限)

    

    B、SGID对于目录的含义:(常用的用途)

    • 普通用户必须对该目录(有SGID权限的目录)具有r与x权限,才能进入该目录
    • 普通用户在此目录下的有效群组将会变成该目录的群组
    • 用途若使用者拥有该目录的w权限(写),则使用者在该目录下新建文件后,新建文件的所属组与该目录的所属组相同

   (即拥有SGID权限的目录下,新建的文件的所属组与该目录的所属组是一样的。)

     C、设置SGID权限的方法:(基本权限的数字表示法前加的2代表SGID权限

   方法一:chmod g+s 目录名(权限的字符模式,在group处添加s

   方法二chmod 2755 目录名(权限的数字模式,在基本权限的数字前加2

   注意:当文件SGID的标志s不是小写而是大写S时,说明无执行权限x,即为空,无效。

       D、取消SGID权限的方法:chmod g-s 目录名

 

3、Sticky Bit:SBIT权限

  SBIT权限:即粘着位,在目录其他人x权限位上标志成 ,则该目录具有SBIT权限。

  SBIT权限只针对目录有效

  SBIT权限对于“目录”的含义:

  • 使用者对于该目录(有SBIT权限的目录)具有w、x权限,即具有写、入权限,
  • 使用者在该目录下建立文件或子目录时,只有自己或root能够删除文件或子目录

  通俗的理解是:具有SBIT权限的目录下,只能够对自己建立的文件进行删除、更名、移动等操作,而无法删除他人建立的文件。如系统中的“/tmp/”目录:

     

  设置SBIT权限的方法:(基本权限的数字表示法前加的1代表SBIT权限

    方法一:chmod -R o+t 目录名(权限的字符模式,在other处添加t

    方法二chmod -R 1755 目录名 (权限的数字模式,在基本权限的数字前加1

  取消SBIT权限的方法:chmod -R o-t 目录名

 

 四、文件隐藏属性 

1、隐藏属性

  linux系统中文件除了普通rwx权限外,还有一种隐藏权限,如下:

  

  其中,每个位置代表一种隐藏属性,若含有该属性则显示相应字符,如i属性,

  若没有该隐藏属性则显示“-”(减号)

2、常用隐藏属性介绍

  

 3、设置文件隐藏属性:chattr命令

 命令格式:chattr + 参数 文件名

 “a”参数:增加了“a”属性之后,便不能再使用Vim编辑器写入文本,需要使用echo命令以追加的方式写入。(此属性一般用于日志文件)

echo 内容 >> 文件名          “>>”表示追加

echo 内容 >  文件名             “>”表示覆盖

 4、查看文件隐藏属性:lsattr命令

 

 

标签:文件,SUID,ACL,Linux,SGID,权限,目录
From: https://www.cnblogs.com/yyz1-/p/17892917.html

相关文章

  • 网安靶场环境_DVWA-读取文件报错File not found! Cookie中有两个security键
    DVWA-文件包含漏洞-读取文件报错-ERROR:Filenotfound!Cookie中有两个security键1问题复现(1)登录DVMA后,设置DVWASecurity为Low。 (2)进入FileInclusion,访问dvwa/vulnerabilities/fi目录下的的test.txt文件(自己创建的测试文件)。 (3)报错ERROR:Filenotfound!找不到文......
  • 实现excle文件的导入和导出
    @RequestMapping("/export")publicvoidexport(HttpServletResponseresponse){try{List<User>list=userMapper.findAll();ExcelWriterexcelWriter=ExcelUtil.getWriter(true);excelWriter.write......
  • Linux课程随笔(五)
    作为一名计算机专业的学生,深入学习Linux操作系统的进程管理是至关重要的一部分。在本篇博客中,我们将深入探讨Linux系统中进程的概念、创建、管理以及监控。通过对进程管理的学习,我们可以更好地理解操作系统的运行机制,提高系统管理和调优的技能。什么是进程?在计算机科学中,进程是......
  • Linux课程随笔(四)
    Linux操作系统以其稳定性和安全性而闻名,文件权限是Linux系统中重要的安全机制之一。本篇博客将介绍Linux文件的基本权限概念以及如何使用命令行进行文件权限的管理。文件权限概述在Linux中,每个文件都有一组权限,用于定义文件的访问规则。这组权限分为三个部分:用户(Owner)、群组(Grou......
  • Linux课程随笔(三)
    在Linux系统中,用户管理是系统管理员和普通用户都需要了解和掌握的重要主题。本篇学习博文将介绍一些基本的Linux用户管理命令,帮助你有效地管理用户账户,确保系统的安全性和稳定性。用户账户基础在Linux系统中,每个用户都有一个唯一的用户名(Username)和一个相关的用户ID(UID)。用户信......
  • Github提交大文件时报错
    Github提交大文件时报错报错如下remote:error:GH001:Largefilesdetected.YoumaywanttotryGitLargeFileStorage-https://git-lfs.github.com.​​​​解决办法下载git-lfs后安装https://www.123pan.com/s/KYyzVv-hwrzv.html提取码:GmA0下载并安装......
  • Linux课程随笔(八)
    当你希望在Windows操作系统上进行Linux系统的学习或开发时,使用虚拟机是一个理想的选择。VMware是一款强大的虚拟机软件,它允许你在Windows中创建虚拟计算机,从而在其中安装和运行Linux系统。本文将指导你使用VMware在Windows中安装Linux,并提供一些基本的步骤和注意事项。在Windows......
  • Linux课程随笔(七)
    在Linux操作系统中,I/O(输入/输出)重定向和管道是强大的工具,它们允许用户有效地处理命令之间的输入和输出流。本篇博客将深入探讨Linux中的I/O重定向和管道的概念,以及如何利用它们来提高命令行的灵活性和效率。I/O重定向什么是I/O重定向?I/O重定向是一种将命令的输入和输出流导向......
  • Linux课程随笔(六)
    作为一名计算机专业的学生,深入了解操作系统是必不可少的一部分。在众多操作系统中,Linux因其开放源代码、稳定性和灵活性而备受欢迎。本文将聚焦于Linux的存储管理,深入探讨文件系统、磁盘管理以及存储优化等方面的知识。文件系统1.文件系统概述在Linux中,文件系统是组织和存储数......
  • Linux网络设置
    1.将安装好的虚拟机打开,依次点击编辑虚拟机设置,点击网络适配器,改为桥接模式 2.查看主机的IP,网关,DNS等信息。按住win+r调出运行框,在里面输入cmd,然后输入代码ipconfig,查看主机的ip等信息  3.运行虚拟机后,输入ipaddress查看网卡的信息 3.进入系统编辑网卡配置文件,命令......