美文网首页
用户权限、特殊权限和ACL.md

用户权限、特殊权限和ACL.md

作者: 属于你的世界 | 来源:发表于2017-05-30 19:41 被阅读0次

    1.基本概念

    linux 安全上下文

    • 运行中的程序:进程 (process)
      以进程发起者的身份运行:
      root: /bin/cat
      mage: /bin/cat
      进程所能够访问资源的权限取决于进程的运行者的身份

    组的类别和基本配置文件

    • 组的类别

    • 用户的主要组(primary group):

      • 用户必须属于一个且只有一个主组
      • 组名同用户名,且仅包含一个用户:私有组
      • 用户的附加组(supplementary group)
      • 一个用户可以属于零个或多个辅助组
    • 主要配置文件

      • /etc/passwd :用户及其属性信息( 名称、UID 、主组ID 等)
        • 文件格式:


          Paste_Image.png
      • /etc/group :组及其属性信息
        • 文件格式:


          Paste_Image.png
      • /etc/shadow :用户密码及其相关属性
        • 文件格式: login name:encrypted password:date of last password change:minimnu passwd age : maxmnu paasword age: password warning period:password inactivity period:account expiration date reserved field
      • /etc/gshadow:组密码及其相关属性
      • 文件格式: group name: encrypted password:administrators:members

    2. 文件权限

    • 文件属性

    Paste_Image.png
    • 文件属性进行操作的命令
    • chown
      • 作用:进行文件属组和属主的更改
      • 语法:


        Paste_Image.png
    • 实例:更改文件test.txt的属组和属主为test用户


      Paste_Image.png
    • chgrp
      • 作用: 改变文件的属组
      • 语法:


        Paste_Image.png
      • 实例: 将test.txt文件的属组改成root


        Paste_Image.png
    • 文件权限

    • 文件的权限主要针对三类对象进行定义:
      - owner: 属主, u
      - group: 属组, g
      - other: 其他, o
    • 每个文件针对每类访问者都定义了三种权限:
      - r: Readable
      - w: Writable
      - x: eXcutable

    注:当然这只是最基本的权限

    • 文件权限操作命令

      • chmod
      • 作用:修改文件的基本权限,当然这里的
    • 文件系统特殊权限

    • 特殊权限的前提: 进程有属主和属组;文件有属主和属组
      (1) 任何一个可执行程序文件能不能启动为进程, 取决发起者
      对程序文件是否拥有执行权限
      (2) 启动为进程之后,其进程的属主为发起者, 进程的属组为
      发起者所属的组
      (3) 进程访问文件时的权限,取决于进程的发起者
      (a) 进程的发起者,同文件的属主:则应用文件属主权限
      (b) 进程的发起者,属于文件属组;则应用文件属组权限
      (c) 应用文件“其它”权限

    • SUID

      • 任何一个可执行程序文件能不能启动为进程:取决发起者对
        程序文件是否拥有执行权限
      • 启动为进程之后,其进程的属主为原程序文件的属主
        SUID 只对二进制可执行程序有效
        SUID 设置在目录上无意义
    • 权限设定:
      chmod u+s FILE...
      chmod u-s FILE

    • 权限位映射:
      user, 占据属主的执行权限位
      s: 属主拥有x 权限
      S :属主没有x 权限

    • SGID 对于可执行文件

      • 任何一个可执行程序文件能不能启动为进程:取决发起者对
        程序文件是否拥有执行权限
      • 启动为进程之后,其进程的属主为原程序文件的属组
      • 权限设定:
        chmod g+s FILE...
        chmod g-s FILE...
    • SGID 对于目录

      • 默认情况下,用户创建文件时,其属组为此用户所属的 主 组
      • 一旦某目录被设定了SGID ,则对此目录有写权限的用户在此
        目录中创建的文件所属的组为此目录的属组 通常用于创建一个协作目录
      • 权限设定:
        chmod g+s DIR...
        chmod g-s DIR...
      • 权限位映射:
        group, 占据属组的执行权限位
        s: group 拥有x 权限
        S :group 没有x
    • Sticky

      • 具有写权限的目录通常用户可以删除该目录中的任何
        文件,无论该文件的权限或拥有权
      • 在目录设置Sticky 位,只有文件的所有者或root可
        以删除该文件
      • sticky 设置在文件上无意义
      • 权限设定:
        chmod o+t DIR...
        chmod o-t DIR...
      • 权限位映射:
        t: other 拥有x 权限
        T :other 没有x 权

    ACL

    • ACL :Access Control List ,实现灵活的权限管理,除了文件的所有者,所属组和其它人,可以对更多的用户设置权限
    • CentOS7 默认创建的xfs 和ext4 文件系统具有ACL 功能, CentOS7 之前版本,默认手工创建的ext4 文件系统无ACL功能, 需手动增加:
      tune2fs –o acl /dev/sdb1
      mount –o acl /dev/sdb1 /mnt/test
    • ACL 生效 顺序:所有者,自定义用户,自定义组,其 他 人
    • 实例: 为多用户或者组的文件和目录赋予访问权限rwx
      • mount -o acl /directory
      • getfacl file |directory
      • setfacl -m u:wang:rwx file|directory
      • setfacl -Rm g:sales:rwX directory
      • setfacl -M file.acl file|directory
      • setfacl -m g:salesgroup:rw file| directory
      • setfacl -m d:u:wang:rx directory
      • setfacl -x u:wang file |directory
      • setfacl -X file.acl directory
    • ACL 文件上的group 权限是mask 值(自定义用户,自定义组
      ,拥有组的最大权限), 而非 传统的组权限
    • getfacl 可看到特殊权限:flags
    • 通过ACL 赋予目录默认x 权限 , 目录内文件也不会继承x 权限
    • base ACL 不能删除
    • setfacl -k dir 删除默认ACL 权限
    • setfacl –b file1 清除所有ACL 权限
    • getfacl file1 | setfacl --set-file=- file2 复制file1的 的acl 权限给file2
    • mask 只影响除所有者和other 的之外的人和组的最大权限
      Mask 需要与用户的权限进行逻辑与运算后,才能变成有限的
      权限(Effective Permission)
    • 用户或组的设置必须存在于mask 权限设定 范围内才会 生效
      setfacl -m mask::rx file
    • --set 选项会把原有的ACL 项都删除,用新的替代,需要注
      意的是一定要包含UGO 的设置,不能象-m 一样只是添加
      ACL 就可 以
    • 示例:
      setfacl --set u::rw,u:wang:rw,g::r,o::- file1
    • 备份和恢复ACL
    • 主要的文件操作命令cp 和mv 都支持ACL ,只是cp 命令需要
      加上-p 参数。但是tar 等常见的备份工具是不会保留目录
      和文件的ACL 信息
    • 实例:
      getfacl -R /tmp/dir1 > acl.txt
      setfacl -R -b /tmp/dir1
      setfacl -R --set-file=acl.txt /tmp/dir1
      setfacl --restore acl.txt
      getfacl -R /tmp/dir1

    相关文章

      网友评论

          本文标题:用户权限、特殊权限和ACL.md

          本文链接:https://www.haomeiwen.com/subject/naclfxtx.html