权限管理与ACL

一、文件属性

1.文件属性:

权限管理与ACL文件属性.PNG

   文件属性操作

    chown : change owner  ,设置文件所有者

    chgrp : change group  ,设置文件的属组

   文件属主修改: chown  

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

    用法:

    OWNER

    OWNER:GROUPNAME    (同时修改属主、属组)

    :GROUPNAME                (默认属主,修改属组)

    命令中的冒号可用.替换;

    -R: 递归    (递归设置目录中的文件、子目录权限)

    chown [OPTION]… –reference=RFILE FILE…   参照某文件权限设置权限

   文件属组修改: chgrp

    格式:chgrp [OPTION]… GROUP FILE…

    chgrp [OPTION]

    -R  递归 递归设置目录中的文件、子目录权限)

      

2.文件权限:

权限管理与ACL权限.PNG

   1)权限定义对象:

    文件的权限主要针对三类对象进行定义:

    owner: 属主,文件拥有者, u

    group: 属组, 文件拥有组,g

    other: 其他, 除以上两类人以外的全部用户,o

    每个文件针对每类访问者都定义了三种权限:

    r: Readable ,读取

    w: Writable ,写

    x: eXcutable,执行

    系统对于权限,是依次将用户权限与文件、文件夹的所有者、组、其他权限,依次匹配

    注:只针对部分文件系统,fat格式的文件系统不支持权限修改(元数据分区中无此内容)

   2)权限实际意义

     文件权限的实际意义:

    r: 可使用文件查看类工具获取其内容

    w: 可修改其内容,内容也可以被破坏,但是无法删除文件

    x: 可以把此文件提请内核启动为一个进程,针对二进制程序、脚本而言

     目录权限的实际意义:

    r: 无法进入目录(cd)可以使用ls查看此目录中文件列表,但是无法查看文件属性—

    w: 可在此目录中创建文件,也可删除此目录中的文件(但需要先有X权限)

    +wx : 可以进入目录,创建、修改、删除文件、文件内容,但是无法获取文件列表

    x: 可以使用ls -l查看此目录中文件列表,可以cd进入此

   3)权限操作    

    权限赋值的八进制数字法:

     — 000 0

     –x 001 1

     -w- 010 2

     -wx 011 3

     r– 100 4

     r-x 101 5

     rw- 110 6

     rwx 111 7

     例如:

    640: rw-r—–

    rwxr-xr-x: 755

    权限修改:

    命令格式:  chmod [OPTION]… OCTAL-MODE FILE…

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

    -R: 递归修改权限  (此操作有风险)

    + X (大写) 当递归+X时,如果目录内有子目录,则加执行权限, 如果遇到文件,若文件本身

     无执行权限,则不加,若有则加x权限        

    eg : chomd a=rwX \目录

    MODE:

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

    u=     g=     o=     ug=   a= (all,全部用户)  u=,     g=

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

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

    八进制赋值

    eg:  chmod  666 file1

    chmod [OPTION]… –reference=RFILE FILE…

    参考RFILE文件的权限,将FILE的修改为同RFILE;

   4)新文件、目录默认权限  umask值

     umask作用:用于设置创建文件、目录时的默认权限

     默认权限:

     新建文件默认权限:  666-umask

        (取值为666是处于安全考虑,使新建文件默认下均不含有执行权限)

        如果所得结果某位存在执行(奇数)权限,则将其权限+1,得到最终权限

        eg: umask=125   –>  666-125 =541  –>+1处理后为: 642  (5+1,1+1)

     新建目录默认权限: 777 – umask

        eg :  umask=100 –> 777-100=677 (rw-rwx-rwx)

                               umask 操作:

    umask    查看umask 值  (无需加参数)

    (注:如论如何设定,新文件默认均无执行权限)

    umask N  : 设定umask = N

    注: umask 每个位的最大值不超过7

     umask -S   以模式方式显示umask

    eg:   u=rwx,g=rw,o=x

    umask -p  输出umask值以供调用

    eg:   umask 0022

     

3特殊权限:SUID(s), SGID(s), Sticky(t)

  linux安全上下文

    前提:进程有属主和属组;文件有属主和属组

    (1) 任何一个可执行程序文件能不能启动为进程:取决于发起者

    对程序文件是否拥有执行权限

    (2) 启动为进程之后,其进程的属主为发起者;进程的属组为

    发起者所属的组

    (3) 进程访问文件时的权限,取决于进程的发起者

    (a) 进程的发起者,同文件的属主:则应用文件属主权限

    (b) 进程的发起者,属于文件属组;则应用文件属组权限

   SUID

    作用:可执行文件上SUID权限(作用于二进制程序)(u+s后)任何用户可启动此进程,

         视为以root用户启动,并且具备root权限

    (对于各种命令,+s之后,任何用户使用它都可以获取root使用时的权限)

    作用对象:SUID只对二进制可执行程序有效,SUID设置在目录上无意义

    权限设定:

    chmod u+s FILE…

    chmod u-s FILE…

   SGID

    作用:

    目录:当一个目录实行了sgid,在目录中任何新创建的文件,都继承本目录的属组

    为自己的属组

    文件:作用在文件上, 一旦一个文件被赋予SGID的权限, 无论当前的用户有无执

    行权限,用户运行该程序,会自动继承该程序所属组的权限。

             作用对象:目录、文件

    权限设定:

    chmod g+s FILE…

    chmod g-s FILE..

    Sticky 位 (粘滞位)

    作用:具有写权限的目录通常用户可以删除该目录中的任何文件,无论该文件的权限或拥有权

    在目录设置Sticky 位,只有文件的所有者或root可以删除该文件

    作用对象:仅作用于目录,sticky 设置在文件上无意义

    权限设定:

    chmod o+t DIR…

    chmod o-t DIR…

    例如:

     ls -ld /tmp

    drwxrwxrwt 12 root root 4096 Nov 2 15:44 /tmp

    注:当文件夹、文件 SUID\SGID\STKCKET 显示为大写时,为错误状态

    小写才是正常状态

        chmod 777 /dir 未必可以除掉 s权限

        应该改为: chmod 0777 /dir

    特殊权限的数字法:

    SUID SGID STICKY

    000 0

    001 1

    010 2

    011 3

    100 4

    101 5

    110 6

    111 7

    eg: chmod 4777 /tmp/a.txt

   权限位映射:

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

    s: 属主拥有x权限

    S:属主没有x权限

    SGID: group,占据属组的执行权限位

    s: group拥有x权限

    S: group没有x权限

    Sticky: other,占据other的执行权限位

    t: other拥有x权限

    T: other没有x权限

    注意:修改时,应注意是否需要先赋予x权限,后再追加s权限

    设定文件的特定属性:

    chattr +i 不能删除,改名,更改

    chattr +a 只能增加

    lsattr 显示特定属性

二、访问控制列表ACL

  1.ACL

    ACL: Access Control List,实现灵活的权限管理

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

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

  2. ACL安装:

    CentOS7.0默认创建的xfs和ext4文件系统有ACL功能。

    CentOS7.X之前版本,默认手工创建的ext4文件系统无ACL功能。

    需手动增加:

    tune2fs –o acl /dev/sdb1

    mount –o acl /dev/sdb1 /mnt

  3. ACL 使用详解

    命令:setfacl 设置ACL规则           

          getfacl  file|dir  获取文件、目录ACL列表

      

       setfacl    设定文件访问控制列表

      用法: setfacl [-bkndRLP] { -m|-M|-x|-X … } file …

      -m, –modify=acl 更改文件的访问控制列表

             u:username:rwx file/dir  用户

             g:groupname:rwx file/dir  组

             o:0 file/dir   其他

             :0 指无任何权限

      -M, –modify-file=file 从文件中读取访问控制列表条目来修改对应文件

      -x, –remove=acl 根据文件中访问控制列表移除条目

      -X, –remove-file=file 从文件读取访问控制列表条目并删除

      -b, –remove-all 删除所有扩展访问控制列表条目

      -k, –remove-default 移除默认访问控制列表

          –set=acl 设定替换当前的文件访问控制列表

          –set-file=file 从文件中读取访问控制列表条目设定

          –mask 重新计算有效权限掩码

      -n, –no-mask 不重新计算有效权限掩码

      -d, –default 应用到默认访问控制列表的操作 (生效以后,目录中的任何新建文件也会赋予acl默认权限)

      -R, –recursive 递归操作子目录

      -L, –logical 依照系统逻辑,跟随符号链接

      -P, –physical 依照自然逻辑,不跟随符号链接

          –restore=file 恢复访问控制列表,和“getfacl -R”作用相反

          –test 测试模式,并不真正修改访问控制列表属性

      -v, –version           显示版本并退出

      -h, –help              显示本帮助信息

    使用示例:

    mount -o acl /directory      挂载ACL,使指定目录的ACL临时生效,重启后失效

    • getfacl file |directory        查询ACL列表

    • setfacl -m u:wang:rwx file|directory   设定用户的指定权限

    • setfacl -Rm g:sales:rwX directory      递归设定组对目录以及其目录内文件的权限

    • setfacl -M file.acl file|directory 使用file.acl文件中的acl条目对file/dir进行acl修

                              改文件格式,参照getfacl得到的信息

    • setfacl -m g:salesgroup:rw file| directory   对指定组设定对某文件、目录的权限

    • setfacl -m d:u:wang:rx directory   对dir中的新建文件也赋予wang:rx权限

                               删除用户wang对file/dir的ACL条目

        文件内容格式:u:username

               g:groupname

                o:

     • setfacl -X file.acl directory     删除dir上 file.acl 文件中对应的条目

   4. ACL中的mask值

    ACL文件上的group权限是mask 值(自定义用户,自定义组,拥有组的最大权限) ,除了所有者、

      others ,其他人(属组、ACL添加的其他用户)的权限均不会高于此权限,受此权限的影响而非传统的组权限

    • getfacl 可看到特殊权限: flags

    • 默认ACL权限给了x,文件也不会继承x权限。

    • base ACL 不能删除

    • setfacl -k dir 删除默认ACL权限

    • setfacl -b file1清除所有ACL权限

    • getfacl file1 | setfacl –set-file=-  file2 复制file1的acl权限给file2

  5.备份和恢复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

    #getfacl -R /tmp/dir1

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

(0)
ldt195175108ldt195175108
上一篇 2016-08-05
下一篇 2016-08-05

相关推荐

  • shell四剑客之sed

    概述 Stream EDitor, 行编辑器 sed是一种流编辑器,它一次处理一行内容。处理时,把 当前处理的行存储在临时缓冲区中,称为“模式空间”( pattern space),接着用sed命令处理缓冲区中的内容 ,处理完成后,把缓冲区的内容送往屏幕。接着处理下一 行,这样不断重复,直到文件末尾。文件内容并没有改变 ,除非你使用重定向存储输出。Sed主要…

    Linux干货 2016-08-15
  • 计算机的组成及其功能

    计算机系统由硬件系统和软件系统两大部分组成。冯诺依曼奠定了现代计算机的基本结构。 冯诺依曼体系的计算机,必须具有如下功能: #1 把需要的程序和数据送至计算机中; #2 具有长期记忆程序、数据、中间结果及最终运算结果的能力; #3 能够完成各种算术运算、逻辑运算和数据传送等数据加工处理的能力; #4 能够根据需要控制程序走向,并能根据指令控制机器的各部件协调…

    Linux干货 2016-08-15
  • htop使用详解

        在管理进程时通常要借助一些工具,比较常用的就是ps和top了;不过CentOS还为我们提供了一个更加强大的工具htop,下面就来了解一下此工具的使用方法。 一、安装htop         htop工具在epel源中提供,请自行配置epel源,也可以直…

    Linux干货 2015-05-18
  • 文本处理三剑客-grep及正则表达式初

    什么是正则表达式 基本正则表达式的元字符 扩展正则表达式 grep的基本理解 grep的基本选项 grep的应用实例 什么是正则表达式   正则表达式,又称正规表示法、常规表示法。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表通常被用来检索、替换那些符合某个模式的文本。(…

    Linux干货 2016-08-07
  • grep命令系列:grep中的正则表达式

     grep :是一款文本过滤工具 。其作用:根据用户指定的“模式”对目标文本进行逐个的匹配检查。  正则表达式 REGEXP:有一类特殊字符及文本字符所编写的模式,其中有些字符不表示字面的意义,而表示控制或通配的功能。    正则表达式分为两种:         基本正则表达式:…

    Linux干货 2017-04-10
  • 加密与CA

    一次加密通讯流程: 1、生成数据 2、用单向加密数据生成特征码 3、用自己的私钥加密特征码放在数据后面 4、生成临时会话密钥加密特征码和数据 5、用对方的公钥加密临时密钥 2、私有CA 构建私有CA     1、生成私钥     2、自签署证书 给节点发放证书     …

    Linux干货 2017-02-13

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-07 23:30

    对命令的的常见用法总结的很好,可以尝试着将自己的操作放进去,这样在以后的复习中会更直观哦。