Linux学习笔记:用户的权限管理

 在上周清明假期期间,咱们仍然在紧张的学习中,今天咱们学习了用户的权限管理,用户的权限管理顾名思义即为用户在使用操做系统时所能使用的权限及管理用户使用相应的命令为用户添加相应的权限,其中用户的权限分为普通权限,特殊权限及文件的特殊权限。安全

  如下即为本堂课所学内容整理记录:服务器

普通权限:app

  进程安全上下文:异步

    1.判断进程的全部者是否为想要操做的文件的属主,若是是,就按照属主的权限进行受权;ide

    若是不是,就转到第2条;学习

    2.判断进程的全部者是否为想要操做的文件的属组中的成员,若是是,就按照属组的权限进行受权;若是不是,就转到第三条;ui

    3.按照其余用户的权限进行受权;操作系统


  权限的构成:日志

    MODE(Permission):使用权继承

    r:readable,可读

    w:Writable,可写

    x:executable,可执行


    目录:

      r:可使用ls命令得到其中全部的文件名的列表;ls -l命令来获取目录中文件的详细的属性信息也不能使用cd命令进入其中,也不能在路径中引用该目录;

      w:能够修改此目录中的文件名或文件列表,即:能够再此目录中建立、修改或删除文件名;

      x:可使用ls -l命令来获取其中的文件的详细属性信息;也能够在路径中引用该目录;也可使用cd命令来进入其中;

      x权限是目录的基本权限,任何目录都必须对任何用户开放x权限,不然,用户将没法进行任何操做。  


    文件:

      r:能够查看或获取该文件中存放的数据;

      w:能够修改文件中存放的数据;

      x:能够将此文件发起运行为进程;


  ls -l <--> ll

    rw-r--r--:三个权限位--属主、属组、其余用户

    属主权限:rw-

    属组:r--

    其余用户权限:r--


    权限标识三元组:

      ---    000    0

      --x    001    1

      -w-    010    2

      -wx    011    3

      r--    100    4

      r-x    101    5

      rw-    110    6

      rwx    111    7


    注意:只有某个文件的属主才能修改文件的使用权(root除外);

    修改文件的使用权限:

      chmod --> change mode;chmod - change file mode bits


      chmod [OPTION] ...MODE [,MODE]...FILE

        MODE:符号权限标识法

        u,g,o,a表示全部权;


        +,-,=表示受权方式:

          +:在原有的权限基础上添加新的权限;

          -:在原有的权限基础上去除某些权限;

          =:不考虑又有权限,直接将权限设置为目标权限;


        r,w,x 表示具体权限内容;


      注意:文件的执行权限,Linux的文件系统来讲,很是重要的安全标识;由于一旦文件具有的执行权限,意味着该文件能够发起执行为进程;因此,默认状况下,文件都不具有执行权限。


      chmod [OPTION]...OCTAL-MODE FILE...

        若是使用八进制数字标识法,则每次必须给足全部的权限位;

        若是给的权限位不完整,文件系统会自动补足,将给定的权限放置在右侧,左侧使用0来补;


        chmod 640 file


      chmod [OPTION]...--reference=RFILE FILE...

        chmod --reference=/PATH/TO/SOMEFILE DES_FILE


        chmod --reference=a b

      选项:

        -R,--Recursive:将目标目录中的文件及子目录中的文件统一的设置为指定的权限标识;   


    OWNERSHIP:全部权

      属主:资源掌控的某个特定用户;owner(user),u

      属组:资源掌控的某些特定用户 ;group, g

      其余用户:不曾掌控资源的那些用户;other,o


      所有用户:all,a


      chown:能够修改文件的属主和属组;


        chown [OPTION]...


    install:安装,复制文件,为文件赋予执行权限


       多源复制:

       install [OPTION]... SOURCE... DIRECTORY

       install [OPTION]... -t DIRECTORY SOURCE...


       建立目录:

       install [OPTION]... -d DIRECTORY...

       

       经常使用选项:

         -m,--mode=MODE :指定目录文件的权限,,默认为755

         -o,--owner=OWNER:设置文件的属主;只能是root可用;

         -g,--group=GROUP:设定目标文件的属组,仅root可用。


       注意:install命令不能复制目录,即其源不能为目录;若是其源为目录,则install经历了会进入目录,依次复制其中的全部非目录文件到目标位置。


    mktemp命令:

      通常来说,临时文件都会建立在/tmp或/var/tmp目录中;无需手动删除,系统会按期自动清除这两个目录中的文件


      选项:

        -d,--directory:能够建立临时目录;


        例子:mktemp [-d] /path/to/tmp.XXXXXXXXX


特殊权限:

  SUID , SGID , STICKY


  默认状况下,用户发起一个进程,该进程的属主是其发起者,也就是说,该进程是以其发起者的身份在运行。


  SUID:

    功能做用:用户发起执行一个进程时,改程序文件若是拥有SUID权限的话,那么此程序发起的进程其属主为该程序文件的属主,而不是其发起者;

    SUID权限所显示的位置:文件的属主权限中的执行权限位;若是属主原本就有执行权限,显示为s;不然,显示为S;


    管理文件的SUID权限:

      chmod u+|-s FILE...


  SGID:

    若是某个目录对于一些用户有写权限而且设置了SGID权限时,则全部对此目录有写权限的用户再建立新的文件或目录之后,新文件的属组再也不是建立用户的基本组,而是继承了该目录的属组;


    SGID权限显示的位置:文件的属组权限中的执行权限位;若是属组原本就执行权限,显示为s,不然显示为S;


  STICKY:sticky(粘性的):粘滞位

    若是某个目录中,有超过一个用户能够有写权限,则这多个用户均可以在该目录中随意建立、修改和删除文件名;


    STICKY的功能做用:

      若是为上述相似的目录设置了STICKY权限,则每一个用户依旧能建立和修改文件名,但每一个用户只能删除那些属于为其自身的文件名。


      STICKY权限的显示位置:在文件权限的其余用户的执行权限位;若是原来就有执行权限,则显示为t;不然,显示为T;


      管理文件的STICKY权限:

        chmod o+|-t FILE...


    suid  sgid  sticky

    ---   000   0

    --t   001   1

    -s-   010   2

    -st   011   3

    s--   100   4

    s-t   101   5

    ss-   110   6

    sst   111   7


      特殊权限的另外一种修改方式:

        将特殊权限对应的八进制数字放置于普通权限八进制数字的前面便可


        例如:想要给某个目录加上粘滞位:

          chmod 1755 DIRECTORY...


  umask的权限生成标准;


    root:0022

      不考虑特殊权限位

      对于新建立的文件或目录,不遮挡属主的任何权限,遮住了属组的写权限和其余用户的写权限;


      文件的默认权限是:666-umask

      目录的默认权限是:777-umask


      理解遮罩码:

    权限遮罩码在建立文件或目录时默认

        将遮罩码的值变为二进制,凡有1的位置,其权限在建立文件时,就不设置;


        0033  000011011 --- 110100100  644

                        --- 111100100  744


        默认状况下,文件的遮罩码已经有了一个0111,在此基础上再次应用umask来遮罩权限

    


文件的特殊属性:

  查看文件的特殊属性:

    lsattr - list file attributes on a Linux second extended file system

    lsattr [ -RVadv ] [ files...  ]


  修改设置文件的特殊属性、;

    chattr:change file attributes on a Linux file system

    chattr [ -RVf ] [ -v version ] [ mode ] files...

      mode:会使用+-=的方式来设置;

      整个chattr命令最关键最核心的设置就是[mode]部分;

      [aAcCdDeijsStTu]都是所须要的属性;


      +:在原有属性设定的基础上,添加新属性;

      -:从原有属性设置中移除指定的属性;

      =:不考虑原有的属性设置,直接将文件的属性更新为指定的属性内容;


      a:append,设置这个属性的文件,其内容不能被更改和删除,只能以追加的方式向文件中写数据;多数的服务器日志类文件会设置为此属性;

      A:atime,文件的访问时间戳;IO瓶颈,设置A属性,可使得文件在被访问时不更改文件的访问时间戳,从而能够有效地防止IO瓶颈的发生。

      c:设置文件是否自动压缩后在行存储;

      C:设置文件是否开启写实复制属性。

      d:设置文件在使用dump进行备份的时候,不会称为备份目标。

      D:设置文件在文件系统中的异步写操做。

      i:设置文件不能被删除、修改、设置链接关系。

      s:设置文件的保密性删除,一旦设置s属性的文件被删除,其对应存储设备中的使用空间会被一并收回。

      u:跟s属性相反,若是这样的文件被删除,则其储存于储存设备中的数据会被留存;


      最经常使用的属性:i 和 a


      chattr +i file


    经常使用选项:

      -R:递归的设置指定目录中的全部文件和子目录的属性;


为文件赋予额外的权限机制:FACL:File Access Conterol list,文件访问控制列表


  文件的额外赋权机制:

  在原有的u,g,o权限位以外,让普通用户可以控制权限赋予另外的用户和组的一种赋权机制;


  通常在Centos或RHEL7版本之后的发行版中,才逐渐成熟。


  与FACL有关的命令:

    getfacl - get file access control lists

      getfacl [-aceEsRLPtpndvh] file ...

        user:USERNAME:MODE

        group:GROUPNAME:MODE

        other::MODE


    setfacl:set file access control lists

      setfacl [-bkndRLPvh] [{-m|-x} acl_spec] [{-M|-X} acl_file] file ...


      acl_spec:acl_specification,指定的访问控制列表

        u:USERNAME:MODE

        g:GROUPNAME:MODE

        MODE:通常使用符号权限标识法;


      为用户赋予额外权限:

        setfacl -m u:USERNAME:MODE FILE...


      为组赋予额外权限:

        setfacl -m g:GROUPNAME:MODE FILE...


      撤销为用户赋予的额外权限:

        setfacl -x u:USERNAME


      撤销为组富裕的额外权限:

        setfacl -x g:GROUPNAME


    注意:若是设置了FACl以后在修改目标文件的使用权限,那么FACL中设置的条目就可能受到影响而致使与要求不符;所以,若是真的须要设置FACL,就要在已经肯定目标文件的使用权限之后再行设置;

相关文章
相关标签/搜索