Linux 基础(6)—— 权限

修改所属人,所属组                文件的 r w x 权限            修改文件的权限chmod          umask   
文件系统上的特殊权限            设定文件特定属性            ACL

文件权限

Linux 基础(6)—— 权限

1.修改所属人,所属组    chown 
(1)change owner 修改文件的所属人
            owner.group   或   owner:group 修改文件的所属人和所属组
以上只有root才能修改文件的所有人

Linux 基础(6)—— 权限

(2)chgrp : change group   或   chown :group [ .group] 修改文件的所属组

           root和文件的owner可以修改文件的所属组(owner修改所属组时,owner必须属于目标组)

Linux 基础(6)—— 权限

chown     -R 递归

Linux 基础(6)—— 权限

Linux 基础(6)—— 权限

chown     –reference test.sh(源文件)  house(修改的文件)

Linux 基础(6)—— 权限

2.文件的 r w x 权限
(1)文件的权限主要针对三类对象进行定义:

   owner: 所属人, u

   group: 所属组, g

   other:  其他人, o

Linux 基础(6)—— 权限

(2)权限判断的顺序(beta)
         先判断是否是文件的所有人,如果是,则执行所属人的权限后结束,如果不是所有人,则判断是否所属组(可以是主组也可以是辅助组),如果是,则执行所属组的权限后结束,如果不是则执行其他人的权限后结束。
                                          所有人->所有组->其他人
(3)普通文件 (三种常用权限)
     r: 可以读取文件的内容
        例: cat    less    more   nano   vim    执行脚本
     w: 可以修改文件的内容
        例: nano   vim   >    >>   tee   gedit
     x: 可以执行该文件 (单独无作用)
        例:  执行脚本
     rwx:最大权限 666
(4)目录文件
     r: 用户可以列出目录下有哪些文件(不能查看文件的详细信息)
     w: 只有w无意义。
     x: 用户可以进入该目录(如果知道文件名,且有相对应的文件权限 ,可以执行对应的操作)
     rx: 用户可以进入目录,且可以长列出。
     rw:等于只有r
     wx: 能进入,能创建能删除,不能列出。故用户能否删除文件与文件自身权限无关。
     rwx: 最大权限 777
     —:null

  目录文件只有rx :

Linux 基础(6)—— 权限

  目录文件只有wx :

Linux 基础(6)—— 权限

  用数字表示权限
    — 0       –x 1       -w- 2       -wx 3       r– 4       r-x 5        rw- 6        rwx 7

3.修改文件的权限 chmod
只有所属人和root可以更改文件的权限
(1)字符修改   chmod u=..,g=..,o=… filename
                                     ugo+rwx 或 a=rwx filename 给文件所有权限
                                     a=     filename 没有任何权限

                                     u+-…,g=-…,o=-…

Linux 基础(6)—— 权限

              chmod -R a+X dir1 递归给目录加x权限;X 当普通文件本身没有x权限时,则跳过,给目录加上所以x权限。一般用于批量修改多个文件、目录的权限时,自动跳过没有执行权限的文件。

Linux 基础(6)—— 权限

(2)数字修改    chmod n filename

Linux 基础(6)—— 权限

   chmod –reference 源文件 目的文件

4.umask     最大权限-umask=默认权限(创建文件touch,创建目录mkdir时)

 最大权限  777(目录文件)   666(普通文件)

 umask      022(root默认)   022 (root下)            (普通用户   002    002)

 默认权限  755                        644

Linux 基础(6)—— 权限

  当umask中全部是偶数时,可以直接减,当umask中包含奇数时,对于目录直接减,对于文件,在奇数所在的位减完后加一。
     umask  231    设置umsk为231
  例 777  rwxrwxrwx(目录文件)    666  rw-rw-rw-(普通文件)
      231  -w–wx–x                       021  -w–wx–x

      546  r-xr–rw-                        446   r–r–rw-

Linux 基础(6)—— 权限

  umask –S 字符模式方式显示默认权限
  umask –p 输出可被调用
              全局设置: /etc/bashrc 用户设置:~/.bashrc(永久生效)
  cp时 当目标文件不存在时(相当于touch了一个新文件) 目标文件的权限=源文件-umask
          当目标文件存在时,被覆盖, 目标文件还是目标文件的权限 (目录也一样)
Linux 基础(6)—— 权限

5.文件系统上的特殊权限

SUID, SGID, Sticky
(1)suid 当对一个可执行的二进制文件作用了SUID权限之后,任何拥有执行该文件权限的人,在执行的过程时都临时拥有该文件所属人的权限。 例:passwd    -rwsr-xr-x
                权限设定:chmod u+s FILE    或     chmod 4… file
        SUID: 占据所属人的执行权限位x

                  s: 所属人拥有x 权限          S :所属人没有x

Linux 基础(6)—— 权限

(2)sgid 当对一个可执行的二进制文件作用了SGID权限之后,任何拥有执行该文件权限的人,在执行的过程时都临时拥有该文件所属组的权限。
                当对一个目录作用了SGID权限之后,任何对该目录有wx权限的用户在该目录下创建的文件及目录的所有属均为该目录的所有组。
               权限设定:chmod g+s file    或     chmod 2… file
        SGID: 占据属组的执行权限位
                 s: group 拥有x 权限          S :group 没有x
Linux 基础(6)—— 权限

Linux 基础(6)—— 权限

(3)sticky 当对一个目录作用了sticky之后(只限制组用户w权限,目录的owner不受影响),该目录下的文件仅其所属人,目录所属人(有wx权限),root才能删除。
                  权限设定:chmod o+t 目录    或     chmod 1… 目录
         Sticky: 占据other 的执行权限位,但和其他人无关
                  t: other 拥有x 权限         T :other 没有x

Linux 基础(6)—— 权限

  chmod 6… file    即有suig也有sgid
             3… file    即有sgid也有sticky

             5… file    即有suid也有sticky

             7… file    all

5.设定文件特定属性
   lsattr 显示特定属性
   chattr +i 不能删除,改名,更改                                   -i解除
   chattr +a 只能追加内容,不能删除,改名,更改         -i解除

Linux 基础(6)—— 权限

Linux 基础(6)—— 权限


6. ACL

(1) CentOS7当中,无论是操作系统安装时还是之后手工创建的文件系统(xfs、ext4)均会开启ACL功能。

 CentOS6及之前的版本,仅操作系统安装时创建的文件系统才会默认开启ACL,手工创建的文件系统,需要手工开启ACL功能。
    mount -o acl /dev/sda7 开启ACL,重新挂载时不指定即可
    tune2fs -o acl /dev/sda7 开启ACL 取消的方式 tune2fs -o ^acl /dev/sda7
(2) 有ACL时权限判断的顺序
         先判断是否是文件的OWNER,如果是,则执行OWNER的权限后结束,如果不是OWNER,则判断是否是ACL的USER,如果是则执行USER权限后结束,如果不是ACL的USER, 则判断是否属于GROUP或ACL GROUP,如果是,则取最大权限。如果不属于任何GROUP,则执行OTHER。
                owner > ACL的USER > 文件所属组+ACL的group+所属组属于的组(weiguo)相加的最大权限 > other
Linux 基础(6)—— 权限
Linux 基础(6)—— 权限
Linux 基础(6)—— 权限
(3) 用法:
①setfacl -m u:liubei:— f1               设置ACL USER
   setfacl -m g:shuguo:rwx f1          设置ACL GROUP
   setfacl -m u::rw,u::rw,g::r,o:: f1  设置多个
Linux 基础(6)—— 权限
②setfacl -M test.sh f1 重新给f1加上原来的ACL
    test.sh 内容来自getfacl f1 > test.sh,如下
         # file: f1
         # owner: root
         # group: root
         user::rw-
         user:caopi:rwx
         group::r–
         mask::rwx
         other::r–
Linux 基础(6)—— 权限
③setfacl -x u:liubei f1 单独去除一条ACL权限
   setfacl -X aclrm.txt f1[ f2 f3 *] 可以批量删除ACL的用户和组
    先编辑aclrm.txt 内容如下
               u:liubei
               g:shuguo
Linux 基础(6)—— 权限
④setfacl -m mask:r f1    或   chmod g=r f1       一旦设置了ACL权限后,原有的文件GROUP不可再更改,使用chmod即修改ACL MASK
              ACL MASK随着新的ACL设置会被重置,重置的标准是让该文件上的所有ACL及文件原GROUP上的权限都有效。
Linux 基础(6)—— 权限
setfacl -Rm u:zhangfei:rwx acltest/ 递归设置
Linux 基础(6)—— 权限
⑤备份和恢复ACL
主要的文件操作命令cp和mv 都支持ACL,cp 命令需要加上-p复制权限。但是tar等常见的备份工具是不会保留目录和文件的ACL信息
   getfacl -R /tmp/dir1 > acl.txt 将目录下的所有文件的ACL属性备份到文件
   setfacl -R -b /tmp/dir1 清除目录下所有文件的ACL属性
   setfacl -R –set-file=acl.txt /tmp/dir1 通过文件还原ACL属性的方法1
   setfacl –restore acl.txt 通过文件还原ACL属性的方法2
Linux 基础(6)—— 权限
⑥setfacl -m d:u:caocao:rwx d1 设置ACL默认权限,仅影响新创建的文件及目录,不影响当前。
   setfacl -m g:caopi:rwx d1
   setfacl -x d:caocao d11 删除一条默认权限
   setfacl -k d1 删除全部默认权限
Linux 基础(6)—— 权限
   setfacl -b f1 去除该文件上ACL属性。

                                           有 什 么 错 误 请 大 家 指 教!

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

(0)
alongalong
上一篇 2017-07-27
下一篇 2017-07-27

相关推荐

  • 马哥教育网络班N22期+第7周课程练习

    1、创建一个10G分区,并格式为ext4文件系统; (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl; mke2fs -t ext4 -b 2048 -L MYDATA -m 2 /dev/sdb1 tune2…

    Linux干货 2016-10-24
  • LVS

        Linux虚拟服务器(LVS)是基于Linux内核的操作系统的负载平衡软件。     LVS提供了良好的可扩展性,可靠性和可服务性。 LVS项目的主要工作是开发先进的IP 负载平衡软件(IPVS),应用级负载平衡软件(KTCPVS)和集群管理组件。 IPVS:在…

    Linux干货 2017-08-21
  • MYSQL数据库基础教程

    一、数据库介绍 1.数据库管理系统的产生背景 (1)数据时代的到来要求对数据进行有效和安全的管理 涉及的数据量大 数据不随程序的结束而消失 数据被多个应用程序共享 大数据时代的到来 (2)传统文件系统管理上的缺陷要求改变数据管理方式 编写应用程序不方便 数据冗余不可避免 应用程序依赖性 不支持对文件的并发访问 数据间联系弱 难以按用户视图表示数据 无安全控制…

    Linux干货 2017-10-05
  • 马哥linux 0726作业

    1,课堂练习 显示当前日期,格式:2016-08-08 显示前天是星期几 设置当前日期为2008-08-08 08:00 使用字符端登陆时,显示当前登录终端号,主机名和当前时间 1,首先我们知道当前登录信息的配置文件在/etc/issue中 2,然后我们查询帮助看看issue的具体描述查到了相关的mingetty的命令当中关于当中的一些选项就是我们需要的三个…

    Linux干货 2016-08-04
  • N25第5周作业(grep和find使用)

    显示当前系统上root, fedora 或user1的默认shell 找出/etc/rc.d/init.d/functions文件中某单词后面跟一组小括号的行,形如:hello(); 使用echo命令输出一个绝对路径,使用grep取出基名,扩展取出其路径名 找出IFCONIFG命令结果的1-255之间的数字 挑战题:写一个模式,能匹配出合理的IP地址 挑战题…

    Linux干货 2016-12-30
  • 请罗列Linux发行版的基础目录名称命名法则及功用规定

    Linux文件系统 <逻辑视图>     根文件系统(rootfs):         root filesystem     LSB,FHS:(FileSystem Heirache Standard)         /bo…

    Linux干货 2016-10-30