用户的权限管理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用户的权限管理相关的知识,希望对你有一定的参考价值。

用户的权限管理

  

一天的时间我们学习了用户的权限管理,主要分为四部分来学习普通权限,特殊权限,文件的

特殊属性,FACL:文件访问控制列表。   

    首先是普通权限,学习了进程安全上下文,权限的构成,属主权限,属组权限,修改文件的使用权

限chmod,以及reference,chown,chgrp,install命令,mktemp命令的含义和使用方法。

    然后学习了特殊权限,主要学习了三个特殊权限SUID,SGID,STICKY的使用方法和含义。

    文件的特殊属性学习内容有查看文件的特殊属性lsattr,修改设置文件的特殊属性chattr,以及

它们的延伸学习和常用选项。

    最后学习了与FACL 有关的命令,getfacl,setfacl。下面是整理好的主要知识点内容。



普通权限

   进程安全上下文:

   1.判断进程的所有者是否为想要操作的文件的属主,如果是,就按照属主的权限进行授权;如果不是,就转到第二条。

   2.判断进程的所有者是否想要操作的文件的属组中的成员,如果是,就按照属组的权限进行授权,如果不是,就转到第三条。

   3.按照其他用户权限进行授权。

 权限的构成

   MOOE(Permission):使用权

       r:readable,可读

       w:writable,可写

       x:executable,可执行

       目录

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

       w:可以修改此目录中文件名或者文件名列表,即可以在此目录中创建、修改或者删除文件名;

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

  注意:x权限是目录的最基本权限,任何目录都必须对任何用户开放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 [OPTION]... MODE[,MODE]... FILE...

         MODE:符号权限标识法

         u,g,o,a表示所有权

         +,-,=标识授权方式

          + 在原有的权限基础上添加某些权限

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

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

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

     例子:

         chmod u+w file

         chmod g+rw file

         chmod u+k,g-wx,o-x file

        chmod u=rw,g=r,o=r file

        chmod ug-x file

        chmod +x file 默认的为a添加执行权限 a=all

        chmod +w file 默认的只为属主添加写权限

 注意:文件的执行权限:linux文件系统来说是非常重要的安全标识,因为一旦文件具备了执行权限,意味着该文件可以被发起执行为进程。所以,默认情况下文件都不具备执行权限;


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

 如果使用八进制(OCTAL)数字标识法,则每次必须给足所有的权限位;如果给的权限为不完整,文件系统会自动补足,将给定的权限放置在右侧,左侧使用0来补。

     chmod 640 file

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


 -R –recursive 将目录中的文件及子目录和子目录中的文件统一设置为指定的权限标识

 reference:参考参照

     chmod – reference=/PATH/TO/SOMEFILE DES_FILE

     chmod – reference=a b

       文件

       r:可以查看或者获取文件中存放的数据

       w:可以修改文件中存放的数据

       x:可以将此文件发起运行为进程

       

   OWNERSHIP:所有权

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

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

       其他用户:未曾掌握资源的那些用户  other,o

       全部用户:all,a   

   chown 可以修改属主和属组

 chown [OPTION]... [OWNER][:[GROUP]] FILE...

  chown OWNER FILE

  chown :GROUP FILE

  chown OWNER: FILE  将目标文件的属主改为OWNER,同时将属组修改为OWNERD的基本组。

  chown OWNER:GROUP FILE  将目标文件的属主和属组修改为OWNER和GROUP

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

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

 注意:修改OWNERSHIP操作只有超级用户(root)可以完成

   

 chgrp 只能修改文件的属组

 chgrp [OPTION]... GROUP FILE...

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


 install命令:

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

  单源复制: install [OPTION]... [-T] SOURCE DEST

  多源复制: 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.XXXXXXXXXX


特殊权限

   SUID,SGID,STICKY

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

  SUID:

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

 SUID权限所显示的位置:文件的属主权限中的执行权限位;如果属主本来就有执行权限,显示为s,否则,显示为S

 管理文件的SUID权限

  chmod u+|-s FILE……

 SGID:

  功能作用:如果某个目录对于一些用户有写权限并且设置了SGID权限时,则所有对此目录有写权限的用户在创建新的文件或目录以后,新文件的属组不再是创建用户的基本组,而是继承了该目录的属组

  SGID权限显示的位置:文件的属组权限中的执行权限位,如果属组本来就执行权限,显示为s;否则显示为S

 管理文件的SGID权限

  chmod g+|-s FILE……

   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

  不考虑特殊权限位

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

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

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


文件的特殊属性

  查看文件的特殊属性lsattr

  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 control list 文件访问控制列表

 文件的额外赋权机制;

 在原有的u,g,o权限之外,让普通用户能够控制权限赋予另外的用户和组的一种赋权机制

 一般在centos或者rhel7版本以后的发行版中,才逐渐成熟

 与FACL 有关的命令:

  getfacl:

 getfacl :get file access control lists

 getfacl [-aceEsRLPtpndvh] file ...

 user:USERNAME:MODE

 group:GROUPNAME:MODE

 other::MODE


  setfacl; set file access control lists

     setfacl  [{-m|-x} acl_spec] 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,就要在已经确定目标文件的使用权限以后再进行设置。



本文出自 “12657170” 博客,请务必保留此出处http://12667170.blog.51cto.com/12657170/1913267

以上是关于用户的权限管理的主要内容,如果未能解决你的问题,请参考以下文章

MySQL的用户管理与权限管理

MySQL的用户管理与权限管理

0 C#WinForm开发权限管理历程之权限管理概述

2、用户权限管理,数据库表设计

php权限管理如何实现

java如何做权限管理