• Linux 文件与目录的权限


    文件默认权限:umask

      umask就是指定“目前用户在新建文件或目录时候的权限默认值”。查询umask有以下两种方式:

      

      目录与文件的默认权限是不一样的:

      - 文件,默认没有可执行(x)权限,只有r、w这两项。也就是最大为666。默认为:-rw-rw-rw

      - 目录,默认所有权限,即为777分,默认权限:drwxrwxrwx

      umask的分数指的是“该默认值需要减掉的权限”,如,umask为022,

      - 创建文件时:(-rw-rw-rw) - (-----w--w)==>-rw-r--r--

      - 创建目录时:(drwxrwxrwx) - (d-----w--w-)==>drwxr-xr-x

      umask对于新建文件的默认权限是很有关系的。如果umask设置为022,那么新建的数据只有用户自己具有w权限,用户组的人只有r这个可读权限而已。

      那如何设置umask呢,直接在umask后边输入002就好了:

      

    文件的隐藏属性 chattr,lsattr

      chattr(设置文件的隐藏属性)

      chattr命令只能在Ext2/Ext3的文件系统上生效。

      

      这个命令是很重要的,尤其在系统的数据安全上面。+i可以让一个文件无法被改动,对于需要强烈的系统安全的人来说,真是相当重要的。

      Isattr(显示文件隐藏属性)

      

    文件特殊权限:SUID, SGID,SBIT

      -SetUID

      

        当s这个标记出现在文件所有者的x权限上时,此时被称为Set UID,简称SUID的特殊权限。SUID有这样的限制与功能:

      - SUID权限仅对二进制程序有效

      - 执行者对于该程序需要具有x的可执行权限

      - 本权限仅在执行该程序的过程中有效

      - 执行过程种,执行者“暂时”将具有该程序所有者的权限。

      

      另外,SUID仅可用在二进制程序上,不能够用在shell script 上面。这是因为shell script只是将很多的二进制执行文件调进来执行而已。

      Set GID

       当s标志在文件所有者x项目为SUID,那s在用户组的x时则成为Set  GID,SGID。SGID可以针对文件或者目录来设置。如果是对文件来说,有如下功能:

        - SGID对二进制程序有用;

        - 程序执行者对于该程序来说,需具备x的权限

        - 执行者在执行的过程中将会“暂时”获得该程序用户组的支持。

      当一个目录设置了SGID的权限后,它将具有如下的功能:

        - 用户若对于此目录具有r与x权限时,该用户能进入此目录;

        - 用户在此目录下的有效用户组将会变成该目录的用户组;

        - 若用户在此目录下具有w的权限(可以新建文件),则用户所创建的新文件的用户组与此目录的用户组相同。

      Sticky Bit

        这个Sticky Bit(SBIT)目前只针对目录有效,对于文件已经没有效果了。SBIT对于目录的作用:

        - 当用户对于此目录具有w,x权限,即具有写入的权限时;

        - 当用户在该目录下创建文件或目录时,仅有自己与root才有权利删除该文件。

        - 当甲这个用户与A目录是具有用户组或其他人的身份,并且拥有该目录的w的权限,这表示甲用户对该目录内任何人新建的目录或文件均可进行删除、重命名、

          移动等操作。不过如果A目录加上SBIT的权限项目时,则甲只能够针对自己创建的文件或目录进行删除、重名命名、移动等操作,而无法删除他人的文件。

      SUID/SGID/SBIT权限设置

        4为SUID

        2为SGID

        1为SBIT

        将一个文件权限改为“-rwsr-xr-x”由于s在用户权利中,所以是SUID,因此,在原先755之前加上4.“chmod 4755 filename”来设置。

        

        最后一个例子出现S和T,因为s和t都是替代x这个权限的,但是你有没有发现,我们执行7666。也就是说,user,group以及other都没有x这个权限,所以

        这个S,T代表的就是“空的”。SUID是表示这个文件在执行的时候有文件拥有者的权限,但是文件拥有者都无法执行了,哪里来的权限给其他人使用,当然是空的。

        除了数字法之外,可以用过符号法来处理,其中SUID为u+s,而SGID为g+s,SBIT则是o+t:

        

     

    权限与命令间的关系 

      - 让用户进入某目录成为“可工作目录”的基本权限:

        可使用的命令:例如cd等切换工作目录的命令

        目录所需权限:用户对这个目录至少需要具有x的权限

        额外需求:如果用户想要在这个目录内利用ls查阅文件名,则用户对此目录还需要r的权限

      - 用户在某个目录内读取一个文件的基本权限是什么

        可使用的命令:cat ,more,less等

        目录所需权限:用户对这个目录至少需要具有x权限

        文件所需权限:用户对文件至少需要具有r的权限才行!

      - 用户可以修改一个文件的基本权限是什么

        可使用命令:nano或者vi编辑器等

        目录所需权限:用户对这个目录至少需要具有x权限

        文件所需权限:用户对该文件至少要有r,w权限

      - 让一个用户可以创建一个文件的基本权限是什么

        目录所需权限:用户在该目录要具有w,x的权限,重点在w

      - 让用户进入目录并执行该目录下的某个命令的基本权限是什么

        目录所需权限:用户在该目录至少要有x权限

        文件所需权限:用户在该文件至少需要有x的权限

     

  • 相关阅读:
    eth0 no such device(reload)
    wince驱动开发入门
    如何在Linux中添加新的系统调用
    嵌入式Linux启动优化手记2 U…
    关于uboot的一些优化
    Yaffs2根文件系统制作
    kernel下制作动态logo
    linux dev/dsp 声卡学习笔记
    【JDK8】Java8 优雅的异步调用API CompletableFuture
    每周总结:2019年12月第5周
  • 原文地址:https://www.cnblogs.com/jixp/p/10839136.html
Copyright © 2020-2023  润新知