Linux系统中文件权限(特殊权限)的相关认识

  1. 文件属性

    在linux系统中一切皆文件,所有的数据都是以文件的形式存储在系统中,我们可以通过ls命令可以查看文件的相关属性,如下图:

            

blob.png

 

                     图1-1 文件权限及属性


   从上图中,可以看到该boot文件权限是r-xr-xr-x(d表示该文件是一个目录),在linux系统中对文件进行操作的一共三类对象,分别是:

    owner 所属主: 即创建该文件的人     u

    group 所属组: 即文件所属群组      g  

    other 其他人: 即属主和属组之外的人  o

每个文件对每类用户都定义了三种权限:

   Readable:可读    文件-可以获取文件的内容   目录-可以使用ls命令查看文件列表     r

   Writable:可写    文件-可以对文件进行修改   目录-可以在目录中创建和删除文件     w

   Excutable:可执行  文件-可以对文件执行操作   目录-可以ls查看文件列表,cd进入目录  x

           注:X表示只给目录x权限,不给文件x执行权限

              blob.png

                        图1-2  X权限

  

  八进制下权限的表现形式:

     blob.png

                        图1-3 八进制下的权限表现形式


2.文件权限及属性修改命令

  2.1 chmod 

     改变文件权限

blob.png

                    图2-1 chmod帮助手册

  从帮助文档中,可以获取chmod命令的相关信息,它语法格式有如下几种:

    chmod [OPTION]…MODE[,MODE]…FILE…

    chmod [OPTION]…OCTAL-MODE FILE…

    chmod [OPTION]…–REFERENCE=RFILE FILE… 

       -R 递归修改权限

  修改一类用户的所有权限:

    u=  g=  o=  ug=  a=  u= ,g=

  修改某类用户一位或多位权限

    u+  g+  o+  u-  g-  o-  a+  a-

   blob.png 

            图2-2 chmod命令使用

  2.2 chown

    修改文件的属主和属组 blob.png

                         图2-3 chown帮助手册

   chown改变文件所有者和所属组,语法格式:

      chown [option]…[owner][:[group]] file… 

      chown [option]…reference=rfile file…

         -R:递归

    blob.png

             图2-4 chown命令使用


3.文件系统上的特殊权限

  a.任何一个可执行程序文件能不能执行为进程,是由它的发起者是否有执行权限决定的

  b.启动为进程后,进程的属组为发起者,属组为发起者所属的组

  c.进程访问文件时的权限,取决于进程的发起者

  3.1 SUID

    blob.png

                 图3-1 SUID文件

    SUID只对二进制文件可执行程序有效

   SUID设置在目录上是无效的

    chmod u+s file…

    chmod u-s file…


  3.2 SGID

   可执行文件上的SGID权限

    启动为进程后,其进程的属主为原程序的属组

    blob.png

                  图3-2 SGID文件  

    chmod g+s file…

    chmod g-d file…

    

    目录上的SGID权限

    默认情况下,用户创建文件,其属组为此用户所属的主组,一旦某目录被设置为SGID,则对此目录有些的权限的用户在此目录创建的文件所属的组为此目录的属组

    通常用于创建一个协作目录 

    blob.png

             图3-3 SGID目录

    chmod g+s dir…

   chmod g-s dir… 


  3.3 Sticky位

   当一个用户对一个目录具有写权限时,就可以对目录中的任何文件执行删除操作,而不需要看该文件的权限。即便该文件由他人创建,并且有严格的读写权限,只要该文件是创建在该用户拥有读写权限的目录下,那么该用户就可以直接对文件进行删除操作,这样就不利于数据的安全性,完整性…所以,就有了sticky位,它的作用就是用来约束用户的行为,在有sticky位的目录中创建文件,那么只有文件所有者和root才能对文件进行删除操作,即使,他人有对该目录的读写执行权限,也无法对非本人创建的文件进行删除。

         blob.png

                       图3-4 sticky位目录及操作

   从上图也可看出,普通用户想要删除不是由他创建的目录时,显示不允许的操作,即使该用户对该目录有读写执行的权限。

   sticky位设置在文件上无意义

    chmod o+t dir…

    chmod o-t dir…

 

  3.4 SUID SGID STICKY

     SUID:user 占据属主的执行权限位  4

       s:属主具有x权限

       S:属主没有x权限

     SGID:group 占据数组的执行权限位  2

       s:group拥有x权限

       S:group没有x权限

     STICKY:other 占据other的执行权限位 1

       t:other拥有x权限

       T:other没有执行权限

  3.5 文件特定属性设定

     chattr

blob.png

                      图3-5 chattr帮助手册

    chattr:改变linux文件系统中文件属性

    +i:当为某个文件设置了i属性,那么该文件就不能被删除或者重命名,也不能创建链接,也不能将任何数据写入到该文件中,只有超级管理员和文件的拥有者才能设置或清除这个属性

    +a:当给某个文件设定了a属性,那就表明只能往该文件写入数据,其他操作均不能实现

    lsattr:可以查看文件的这些特定属性

blob.png

            图3-6 chattr命令操作

4.访问控制列表ACL

  ACL: Access Control List 访问控制列表(实现灵活的权限管理)

  作用: 除了文件的所有者,所属组和其他人,可以对更多的用户进行权限设置

  ACL生效顺序:所有者 自定义用户 自定义组 其他人

 4.1 setfacl

blob.png

                    图4-1 setfacl帮助手册

   setfacl:设置文件访问控制权限列表

      setfacl -m u:user:rwx file|directory   对指定用户设置rwx的acl权限

      setfacl -m g:group:rwx fiel|directory  对指定的组设置rwx的acl权限

      setfacl -Rm g:group:rwX directory     对指定的组设置rwx递归目录的acl权限     

      setfacl -x u:user file | directory     删除指定用户的acl权限

      setfacl -X facl.acl directory        删除指定的acl权限文件

      setfacl -k dir                  删除默认的acl权限

      setfacl -b file                 清除所有的acl权限 

 

 4.2 getfacl

blob.png

                      图4-2 getfacl帮助手册

   getfacl:获取文件访问控制列表信息

      getfacl file | directory   查看文件或目录的acl权限  

    blob.png

                 图4-3 getfacl命令使用

   备份和恢复ACL

      getfacl -R /tmp/dir1 > acl.txt

      setfacl -R -b /tmp/dir1

      setfacl -R –set-file=acl.txt /tmp/dir1 

      getfacl -R /tmp/dir1

5.umask和acl mask的联系与区别

  5.1 umask

    当我们登录系统后创建文件总是有一个默认的权限,普通用户创建文件默认权限664,创建文件夹默认权限是775,root用户默认创建文件权限644,创建的目录默认权限755.这是由umask来限定的,它的参数设置在/etc/profile中,我们可以在/etc/bashrc或家目录下的.bashrc进行自定义的设置。 

  blob.png

             图5-1 umask参数      

root用户的umask码为022,普通用户的umask码为002.

blob.png

          图5-2 root用户

blob.png

          图5-3 普通用户

   

  5.2 acl mask

     ACL中的mask只影响出所有者和other的之外的人和组的最大权限,mask需要与用户的权限进行逻辑与运算后,才能变成有效的权限。也就是用户或组的设置必须存在于mask限定的范围内才会生效,即当给予了用户或者组rwx的权限,但是mask码为rw,那么x的权限就不会生效,有限的就只是rw的权限,有限权限就是不能大于mask码的权限,可以小于或者等于mask码的权限。

    blob.png

                    图5-4 ACL中的mask码

    ACL中的mask码规定了用户或组的默认最大权限,超过这个权限的权限会变成无效的权限,即便给了额外的权限,该权限也无法进行操作,文件中的umask码则是用文件666(目录777)-umask,与umask位相同的权限就会被屏蔽掉,从而得出最终的权限。

原创文章,作者:Stupid_L,如若转载,请注明出处:http://www.178linux.com/28085

(0)
Stupid_LStupid_L
上一篇 2016-08-04
下一篇 2016-08-04

相关推荐

  • Linux命令date命令详解

    在linux环境中,熟练运用date命令来表示自己想要表示的时间,肯定可以给自己的工作带来诸多方便,下面是详细的使用说明和示例 在linux环境中,不管是编程还是其他维护,时间是必不可少的,也经常会用到时间的运算,熟练运用date命令来表示自己想要表示的时间,肯定可以给自己的工作带来诸多方便。 1.命令格式:date[参数]… [+格式] 2.命…

    2017-07-18
  • 防护墙服务

    iptables的基本认识        Netfilter组件: 内核空间,集成在linux内核中 扩展各种网络服务的结构化底层框架 内核中选取五个位置放了五个Hook(勾子)function(INPUT、OUTPUT、FORWARD、PREROUTING、POST ROUTING),而这五个hoot functio…

    2017-08-21
  • 磁盘管理及文件系统

    磁盘及文件系统管理初步与进阶(重点内容) 磁盘分区及文件系统 linux系统管理 磁盘分区及文件系统管理:分区工具 linux磁盘及文件系统管理 整个操作系统的硬件组成部分,最底层是硬件设备,计算能力得以运行的最根本的基础。 计算机的五大基本部件:cpu,运算器,控制器被整合到一起,由一个硬件部件来提供。 存储器(主存rom可编址的存储单元)。主板上有cpu…

    Linux干货 2016-08-30
  • 马哥教育网络班21期+第六周课程练习

    第六周作业 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; cp /etc/rc.d/rc.sysinit /tmpvim /tmp/rc.sysinit # 命令模式下,输入一下内容:%s@\(^[[:space:]]…

    Linux干货 2016-10-17
  • CentOS 7 tomcat 7.0.54 的功能实现及详解

    一、 jdk 安装配置 # yum install java-1.8.0-openjdk-devel (依赖的java-1.8.0-openjdk,java-1.8.0-openjdk,headless也会被安装 ) # alternatives -h # vim /e…

    Linux干货 2014-06-09