第04章权限管理

作者: fe8478c7ba2a | 来源:发表于2018-04-16 20:17 被阅读7次

基本权限UGO

#概述
    文件权限设置: 可以赋于某个用户或组 能够以何种方式 访问某个文件
#权限对象:
     属主: u
     属组: g
     其他人: o
     所有人:a(u+g+o)
#权限类型:
     读:r=4
     写:w=2
     执行: x=1
#设置权限
    更改权限
       使用符号
         使用符号:u用户 g组  o其他  r读   w写  x执行   
语法: chmod 对象(u/g/o/a) 赋值符(+/-/=) 权限类型(r/w/x) 文本对象
   [root@localhost ~]# cd  /tmp
   [root@localhost tmp]# chmod u+x file1 //属主增加执行
   [root@localhost tmp]# chmod a=rwx file1 //所有人等于读写执行
   [root@localhost tmp]# chmod a=- file1 //所有人没有权限
   [root@localhost tmp]# chmod ug=rw,o=r file1 //属主属组等于读写,其他人只读
   [root@localhost tmp]# ll file1 //以长模式方式查看文件权限
         -rw-rw-r-- 1 alice it 17 10-25 16:45 file1 //显示的结果
#使用数字
                4读   2写   1执行
   [root@localhost ~]# chmod 644 file1
   [root@localhost ~]# ll file1
          -rw-r--r-- 1 alice it 17 10-25 16:45 file1 
更改属主、属组
    =chown: 设置一个文件属于谁,属主
#语法:           chwon   用户名.组名   文件
        [root@localhost ~]# chown alice.hr file1 //改属主、属组
        [root@localhost  ~]# chown alice file1 //只改属主
        [root@localhost ~]# chown .hr file1 //只改属组
    =chgrp:     设置一个文件属于哪个组,属组
#语法:            chgrp   组名   文件      -R是递归的意思
        [root@localhost ~]# chgrp it file1 //改文件属组
        [root@localhost ~]# chgrp -R it dir1 //改文件属组
#案例
   需求
      针对hr部门的访问目录设置权限,要求如下:
   1. root用户和hr组的员工可以读、写、执行
   2. 其他用户没有任何权限
      操作思路:
        1.创建组
        2.创建用户
        3.修改属主和属组
        4.设置权限
#操作示范
        [root@localhost ~]# groupadd hr
        [root@localhost ~]# useradd hr01 -G hr
        [root@localhost ~]# useradd hr02 -G hr
        [root@localhost ~]# mkdir /home/hr
        [root@localhost ~]# chgrp hr /home/hr
        [root@localhost ~]# chmod 770 /home/hr
        [root@localhost ~]# ll -d /home/hr/
               drwxrwx---. 2 root hr 4096 3月 13 14:26 /home/hr/

                
2.用户对文件有全部权限,能否删除该文件
  #示例1: 对文件的影响
     [root@localhost ~]# mkdir /dir10
     [root@localhost ~]# touch /dir10/file1
     [root@localhost ~]# chmod 777 /dir10/file1 
     [root@localhost ~]# ll -d /dir10/
           drwxr-xr-x. 2 root root 4096 3月 11 18:37 /dir10/
     [root@localhost ~]# ll /dir10/file1 
           -rwxrwxrwx. 1 root root 0 3月 11 18:37 /dir10/file1
   切换用户alice
     [alice@localhost ~]$ cat /dir10/file1 
     [alice@localhost ~]$ rm -rf /dir10/file1 
                rm: 无法删除"/dir10/file1": 权限不够
       注:不可以,文件的去留在乎用户对其父系目录有没有W的权限
3.用户对文件上一级目录有全部权限,能否删除其中的文件
   #示例2: 对目录有w权限
      [root@tianyun ~]# chmod 777  /dir10/
      [root@tianyun ~]# chmod 000  /dir10/file1 
      [root@tianyun ~]# ll -d /dir10/
              drwxrwxrwx. 2 root root 4096 3月 11 18:37  /dir10/
      [root@tianyun ~]# ll /dir10/file1 
               ----------. 1 root root 0 3月 11 18:37  /dir10/file1
      [alice@tianyun ~]$ cat  /dir10/file1 
               cat: /dir10/file1: 权限不够
      [alice@tianyun ~]$ rm -rf  /dir10/file1 
      [alice@tianyun ~]$ touch  /dir10/file2
         注:可以,文件的生杀大全在于,用户对其父目录是否有w的权限。
4.alice能删除/下的任何文件吗?
    #问题2: alice能删除/下的任何文件吗?
      [root@tianyun ~]# chmod 777  /
      [root@tianyun ~]# ll -d  /
               drwxrwxrwx. 27 root root 4096 6月 4 11:32  /
      [alice@tianyun ~]$ rm -rf  /etc
         注:可以。所以请注意rm -rf 的危险性。

基本权限 ACL

   文件权限管理之: ACL设置基本权限(r、w、x)
#用法
   设置:
      [root@tianyun ~]# touch /home/test.txt
      [root@tianyun ~]# ll /home/test.txt 
            -rw-r--r-- 1 root root 0 10-26 13:59 /home/test.txt
      [root@tianyun ~]# getfacl /home/test.txt//查看文件有哪些ACL权限。
      [root@tianyun ~]# setfacl -m u:alice:rw /home/test.txt //增加用户alice权限
      [root@tianyun ~]# setfacl -m u:jack:- /home/test.txt //增加用户jack权限
      [root@tianyun ~]# setfacl -m o::rw /home/test.txt
#查看/删除:
    如何删除一条acl,如何删除所有acl呢?
      [root@tianyun ~]# ll /home/test.txt 
            -rw-rw-r--+ 1 root root 0 10-26 13:59 /home/test.txt
      [root@tianyun ~]# getfacl /home/test.txt
      [root@tianyun ~]# setfacl -m g:hr:r /home/test.txt
      [root@tianyun ~]# setfacl -x g:hr /home/test.txt //删除组hr的acl权限
      [root@tianyun ~]# setfacl -b /home/test.txt //删除所有acl权限
#帮助
    =查看帮助=
      [root@tianyun ~]# man setfacl
                 /EXAMPLES      //查找示例
    =多多观察,你会发现很多有趣的事情=
      [root@tianyun ~]# getfacl file1 |setfacl --set-file=- file2 //复制file1的ACL权限给file2
高级用法 mask
#mask:
    原理
        acl权限中有个"mask"的选项,它就是ACL权限的最大权限,现在是rwx,当你设置某个用户或组的ACL权限时,要跟mask的权限“相与”之后产生的权限才是该用户的最终权限,也就是加入mask的最大权限是rx,但是你给st用户设置的是rwx权限,此时st用户它的权限只有rx的权限,因为与最大权限“相与”得出的结果就是rx      
#示例
   1.创建一个测试文件:/tmp/filemask
      [root@localhost ~]# touch /tmp/filemask
   2.移除其他用户权限
      [root@localhost ~]# chmod o-r /tmp/filemask 
   3.设置用户alice,读写执行权限
      [root@localhost ~]# setfacl -m u:alice:rwx /tmp/filemask 
   4.查看权限
      [root@localhost ~]# getfacl /tmp/filemask 
         getfacl: Removing leading '/' from absolute path names
         # file: tmp/filemask
         # owner: root
         # group: root
         user::rw-
         user:alice:rwx
         group::r--
         mask::rwx
         other::r--
    5.切换用户alice,验证权限(读写执行)
      [root@localhost ~]# su - alice
            上一次登录:四 3月 29 15:47:05 CST 2018pts/1 上
      [alice@localhost ~]$ echo date >  /tmp/filemask 
      [alice@localhost ~]$ cat /tmp/filemask 
           date
      [alice@localhost ~]$ /tmp/filemask
           2018年 03月 29日 星期四 15:48:52 CST
      [alice@localhost ~]$ exit
              登出
     6.设置掩码mask权限,为无权限。
      [root@localhost ~]# setfacl -m m::--- /tmp/filemask 
     7.观察有效权限effective,alice用户没有权限。
      [root@localhost ~]# getfacl /tmp/filemask 
         getfacl: Removing leading '/' from absolute path names
         # file: tmp/filemask
         # owner: root
         # group: root
         user::rw-
         user:alice:rwx         #effective:---
         group::r--         #effective:---
         mask::---
         other::r--
      8.切换用户验证mask。
       [root@localhost ~]# su - alice
            上一次登录:四 3月 29 15:48:23 CST 2018pts/1 上

       [alice@localhost ~]$ echo date >> /tmp/filemask 
           -bash: /tmp/filemask: 权限不够

       [alice@localhost ~]$ cat /tmp/filemask 
           cat: /tmp/filemask: 权限不够
      9.得出结论,mask掩码与有效权限取之交集。
生产案例
                生产环境中,常用于临时降低用户或组(除属主和其他人)的权限

#请注意文件基本权限。
  1 创建用户(便于测试)
  2 创建两个文件(设置其中一个文件的权限掩码)
    [root@tianyun ~]# setfacl   -m   m::---    /tmp/file1.txt
  3 删除基本权限
    chmod o= /tmp/file1
  4 使用账户进行测试
       file1.txt没有权限。file2.txt有只读权限。
default: 继承(默认)
    要求: 希望alice能够对/home以及以后在/home下新建的文件有读、写、执行权限

思路:
  步骤一: 赋予alice对/home读、写、执行权限
       [root@tianyun ~]# setfacl -m u:alice:rwx /home

  步骤二: 赋予alice对以后在/home下新建的文件有读、写、执行权限 (使alice的权限继承)
    # d     default     继承  #
       [root@tianyun ~]# setfacl -m d:u:alice:rwx /home

相关文章

网友评论

    本文标题:第04章权限管理

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