关于Linux权限问题的补充

发布于:2023-01-10 ⋅ 阅读:(107) ⋅ 点赞:(0)

引言

        关于Linux下的权限问题,在上一篇博客中已作了简单的介绍,今天我们主要对其作一些知识点的补充说明~

权限掩码umask

        我们先来一起思考一个问题,如下图,为什么我们创建一个目录或文件,默认权限会是我们看到的这个样子?它又是怎么做到的呢?

        这是因为:

  •         目录的起始权限为“777”,普通文件的起始权限为“666” ;
  •         系统中的权限掩码umask默认为“002”,而凡是在umask中出现的权限,都不能够在最终的权限中出现;
  •          最终权限 = 起始权限 &(~umask)。   
       

         所以,我们在Linux系统中所创建的,目录的最终权限为“775”,文件的最终权限为“664”!

         另外,Linux下的权限掩码,我们可以进行自定义的更改!

系统中权限掩码的更改命令:umask  XXX        

粘滞位

        在介绍粘滞位之前,我们先来总结回顾一下目录的相关权限所代表的含义~

目录权限

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

于是,问题来了~~

  •      在某一个目录下,只要用户具有目录的写权限(w),该用户就可以删除目录中的文件,而不论这个用户是否有这个文件的写权限。
  •      也就是说,当所有用户都在一个共同的路径下,对该目录具有读写执行权限,虽然彼此之间都不能对彼此的文件内容进行读写操作,但可以对文件进行任意的删除(即使,该文件并不属于你)!

出现这种情形的原因是:

        文件是否能被删除,并不仅仅取决于其自身的文件权限属性,也取决于其所属的目录的写权限,只要用户具有该目录的写权限,就可以对该目录下的文件进行任意的删除!

这怎么能行呢~~自己的文件,却可以被别的用户随意删除,然而这样的情况在以后的工作中是有可能出现的。

为了解决这一问题,Linux系统引入了”粘滞位”,这一方法!

粘滞位的作用

  •         当多个用户共享一个目录时,需要在该目录下,进行文件的读写和创建删除文件的操作 ~这是我们的需求;
  •         而为该目录设置粘滞位这一权限之后,我们就可以保证在实现以上需求的同时,该目录下的文件,我们自己只能删除自己的,而不能删除其他用户的。

粘滞位的使用

Linux下为目录增加粘滞位权限的命令: chmod  +t   目录名

 当一个目录被设置为“粘滞位”,则该目录下的文件只能由:

  • 超级管理员(root)删除
  • 该目录的所有者删除
  • 该文件的所有者删除

关于目录权限的些许总结

  • 目录的可执行权限是表示你可否在目录下执行命令;
  • 如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd进入目录中,即使仍然具有-r读的权限;
  • 而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录,但由于没有读权限,所以在该目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文件。
本文含有隐藏内容,请 开通VIP 后查看