Linux基础之—基础权限和特殊权限以及FACL权限管理

Linux是多用户多任务的操作系统,了解掌握Linux的权限分配机制,也是管理Linux系统安全的基础之一。

文件目录的权限格式如下:

ACL.png

 

1.其中权限位可以看对象到是一个9个占位符,其实分为三位一组:

(1) 第一组:对应的是文件或目录的所有者属主权限。owner

(2) 第二组:对应的是文件或目录的所属组权限。group

(3) 第三组:对应的是文件或目录的其他用户权限。other

2.相应的权限意义如下:

      r:读

     w:写

      x;执行

      -:无任权限

*注意:权限对文件和目录意义是有区别的,下面详细介绍:

3.rwx对文件的意义:

r:可以查阅文件的内容,比如cat命令。

w:可以修改,增加文件内容。注意:对文件的删除操作要看上级目录对应的权限,俗话说的打狗看主人。

x:可以把文件提交给内核执行,这样文件就具有了执行权限。

  

4.rwx对目录的意义:

r:可以浏览目录里的文件名。前提是必须有x权限。

w:可以删除目录里的文件或者重命名。

x:可以进入目录,使用cd命令

5.注意总结点:

   目录一般必要具有x权限,否则后续相应权限意义不大,文件一般不能随便有执行权限,一个恶意的文件对于Linux的系统安全将无从保证。

6.对文件或目录的用户和组授权的方式:可以分为两种,一种是用数字授权,一种是用字符或字符组合授权,下面分别说明:

   (1)数字利用的是八进制权限对应表,如下:

      

000 0

–x 001 1

-w- 010 2

-wx 011 3

r– 100 4

r-x 101 5

rw- 110 6

rwx 111 7

这样每组的权限对应可以用三个八进制数表示:xxx=(000-777)

命令:chmod

      语法格式:

         chmod [options] xxx FILE

         chmod  –reference=RFILE FILE :可以参考已有权限文件的权限授权。

常用选项optons

      -R:可以对目录进行递归授权

             注意:这样授权成功会覆盖先前已有的权限。

  

   (2)字符授权有三种方式:

         +:追加权限

         -:清除权限

         =:附加权限,这样会覆盖已有的权限。

         以上还可可以组合使用

 

          对象分为以下四种:

           a:属主

           g:属组

           o:其他用户

           a:所有用户=ago以上所有用户

         举例格式:

           chmod  o+x,g=r,u-w FILE

           chmod a=rwX FILE

         大X递归授权时,会给目录相应权限,文件跳过,

        

7.更改文件的属主属组命令:

     (1)chown 

          语法格式:

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

          chown [OPTION]… –reference=RFILE FILE…

          常用选项:

           -R:递归更改文件或目录属主属组

            “:”“.”是属主和属组的分割符

           可以只更改属主:

            chown  owner FILE

            也看可以只更改属组:

            chown  :group 前面用“.”“:”都可以

      (2)chgrp命名只支持更改属组

            语法格式

             chgrp [OPTION]… GROUP FILE…

             chgrp [OPTION]… –reference=RFILE FILE..

             常用选项:

              -R:递归更改目录属组

8.umask:对于新创建的文件和目录系统会有一个默认权限位,前面我们知道,目录一般必要有执行权限,文件一般不能有执行权限,所以在授权时目录默认为777,文件默认为666,但是这样的权限位在系统安全中很不安全,为了区分用户权限,必须对相应的权限做出默认限制,这里就需要用到umask遮罩码,目录umask-777,文件umask-666,这样我们发现超级管理员创建的文件和目录跟普通用户创建默认的授权时不同的,为了保证文件不能有执行权限x,数字授权时正常使用umask,文件授权需要遵循有奇数加1,偶数保留。

      命令:umask

       直接使用umask 可以查看当前用户的遮罩码值

  

注意:umask=vale命令设置,只对当前shell环境生效,如何想一直有效,可以在全局/etc/bashrc 或者~/.bashrc 里设置。

 

9.suid sgid sticky:

   分析进程安全上下文:用户要想操作命令发起进程,首先这个二进制程序命令文件必须有执行权限,进程是以某用户身份运行的,也就是说进程是发起此进程用户的代理,相应的进程的权限也是进程发起者用户的权限,这时候就以此用户的身份和权限完成所有操作,过程如下:

     1.如果被访问的文件属主跟进程的属主一样,就应用被访问文件属主的权限,如果不是进入下一步;

     2.如果被访问的文件属组跟进程的属组一样,就应用被访问文件属组的权限,如果不是进入下一步;

     3.这是应用被访问文件other其他用户的权限。

    

      suid:普通用户可以更改自己的密码,但是密码文件/etc/shadow没有任何权限,根据安全上下文,用户执行passwd命令时使用的权限应该是当前用户,当前用户对命令passwd命令只能应用other其他用户权限,其他权限位没有写权限,是不能修改/etc/shadow,但是查看ls /usr/bin/passwd是发现属主多了一个权限位小s,这个小s就是suid,这时应用的安全上下文不在是以进程发起者的身份,而是使用/usr/bin/passwd属主的权限,程序文件自身的属主权限。使用ps aux命令也可以看到进程的属主是root.

   

总结:运行某程序时,相应进程的属主是程序文件自身的属主,而不是启动者;

    

    

    2.sgid权限模型应用原理跟suid一样,程序发起者临时变更属组,当目录属组有写权限是,属于目录属组的用户都可以创建文件,并且文件的属主属组都是用户本身,这样同属于一个目录属组的用户,也没有办法互相操作文件。但是当给目录属组授权sgid时,用户创建的文件不在是自身的属组,这样用户可以互相操作文件。

     总结:运行某程序时,相应进程的属组是程序文件自身的属组,而不是启动者所属的基本组;

3.sticky:在系统中有这样一个目录/tmp,用户可以创建修改删除自己的文件,可以查看别人的文件,但是不能删除修改别人的文件。我们查看ll -d /tmp发现目录的权限是rwxrwxrwxt,发现多了一个t,这就是这个特殊权限位t的作用。

    总结:在一个公共目录,每个都可以创建文件,删除自己的文件,但不能删除别人的文件;

4.特殊权限管理;

 授权suid方式:

     chmod u+s,  FILE

     chmod g+s  FILE

     chmod o+t  FILE

     

取消授权

     chmod g-s  FILE

     chmod o-t  FILE

     chmod u-s  FILE 

 

这里的三个特殊权限有可以组成一组3位八进制,分别:sui=4 sgid=2 sticky=7 suid+sgid=6 .

 

这样组合加起来就是umask完整的权限四位8进制表示。

 

注意:如果原文件有执行权限x,就变更为小s。如果原文件没有执行权限x,这里显示变更为大S,说明有问题,文件没有执行权限,变更也无意义。属组大S和other大T跟前面属主大S意义一样,没有意义。

            这里suid只对二进制可执行程序有效。目录无意义。

10.文件特定属性,对有些文件需要特殊控制保护,可以使用chattr命令

        chattr

语法格式:

chattr [options] FILE

常用选项:

  i:锁定文件,任何用户都不能改名修改删除文件。

  a:对文件有相应权限的用户,只能追加文件内容,

  A:锁定文件的访问时间,用户访问了文件,相应的时间戳也不会改变。

授权用+,取消用-

 

使用lsattr命令查看chattr特定文件权限属性。

10FACL:

    facl利用的是文件系统额外的扩展属性,一般的Linux的文件系统基本都支持acl。

1.分析这样一个场景,我们要想对一个共享资源,分别指定不同用户的权限,我们只能对共享资源授权其他用户other,很难再给每个用户单独授以不同权限。无法满足需求。d当然了大家这时回想怎么不用suid和sgid,要知道种方式对于系统来说是很危险的。这时就需要借助额外的权限控制,Linux里就引入了facl解决这种问题。

         

    facl作用:

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

        

    fACL生效顺序:owner——>facl中授权的用户user——>group——>facl中授权的group组——>other

设定FACL:

命令:setfacl

语法格式 

setfacl [options] [user:perm|group:perm] FILE

常用选项:

-m:授权

u:指定用户

g:指定组

    perm:相应rwx权限。

    

    -x:取消权限

u:直接指定用户就可以

g:直接指定组就可以。

-d:设置默认权限位

-k:删除默认FACL

-b:清空所有FACL

查看FACL

getfacl

语法格式

getfacl FILE

    facl中的mask是默认权限高压线,如何应用了mask,用户在设置权限时,有超过mask权限就会减掉,没有不管。

注意:设置的默认权限有X,文件也不会基础x权限,这里出于Linux系统安全考虑。

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

(0)
xiashixiangxiashixiang
上一篇 2016-08-07
下一篇 2016-08-07

相关推荐

  • N26-第一周博客作业

    第一周博客作业 一、计算机的组成及其功能 计算机的组成可分为硬件、软件两部分。 硬件部分: 按冯.诺伊曼提出的计算机体系,计算机可分为五个部分,分别是:控制器、运算器、存储器、输入设备、输出设备。 CPU:由运算器及控制器组成。 控制器:发出决策指令,协调和指挥计算机各部件的工作。 运算器:对数据进行加工,主要进行算数运行、逻辑运算。 存储器:分为内存储器和…

    2017-02-17
  • linux中nmcli命令使用及网络配置

      Red Hat Enterprise Linux 7 与 CentOS 7 中默认的网络服务由 NetworkManager 提供,这是动态控制及配置网络的守护进程,它用于保持当前网络设备及连接处于工作状态,同时也支持传统的 ifcfg 类型的配置文件。  NetworkManager 可以用于以下类型的连接:Ethernet,VLA…

    Linux干货 2016-09-10
  • N25期—第二周作业

    1、  Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。   一、文件权限管理类命令  chown:改变文件所有者  chown [OPTION]… [OWNER][:[GROUP]] FILE…  常用参数 -R:递归修改(改目录就改目录中的目录及文件) &n…

    Linux干货 2016-12-11
  • HAProxy七种调度方法的简单示意图

    看了三个月,中间因出差和其他事没有看估计也有十几天,刚把35天的视频看完。很多内容都记不住,待第一次看完后再回头看吧。 现在想,对内容进行简单的画图,把基本的体现出来,对记忆和回顾应该有帮助。

    Linux干货 2016-07-26
  • RAID(重要)

    RAID   RAID(Redundent Array of Independent Disk):独立的冗余磁盘阵列,目的是为了结合多个物理驱动器组成单个单元,提高了磁盘的性能或保证数据冗余。RAID能够防止硬件的故障导致数据丢失,但是不能防止人为操作,软件故障、恶意软件感染等造成的数据丢失,因此不能替代备份。 分类有:硬件实现RAID(一是外接式磁盘阵列柜…

    Linux干货 2016-08-30
  • LVM管理

    1、逻辑卷管理器(LVM) (1)逻辑卷管理器(LVM,logical volume manager)可以整合多个物理分区在一起,让这些分区看起来就像一个磁盘一样,而且,还可以在将来其他的物理分区或将其从这个LVM管理的磁盘中删除。这样可以实现磁盘空间的动态管理,相对于普通的磁盘分区有很大的灵活性,同时LVM还有快照功能。 (2)逻辑卷管理器的基本术语 物理…

    Linux干货 2016-09-01

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-07 22:26

    文章整体结构清晰,可是尝试着将自己对特殊权限应用场景模拟的操作写在里面,这样以后复习起来也会直观明了。