linux基础(10)--文件普通权限与特殊权限管理--RHEL6.5

1. 普通权限

  查看文件权限使用ll filename

  文件普通权限分为r、w、x, 即可读、可写、可执行。

  特殊权限权限suid、sgid、Stickybit

  用户分为: 属主(u), 同组人(g), 其他人(o)

  文件拥有者对文件一定有写的权限,即使在文件权限中文件属主只具有读的权限。

  root在普通用户A目录下新建文件,即使文件属主是root,即使用户A对此文件无写权限,但由于文件在用户A目录下,因此用户A可以向此文件内写入数据。

  (1)chmod

      +    在原先权限基础上增加指定权限

      -     在原先权限基础上去掉指定权限

      =    权限直接设置为指定值,原先权限取消

      chmod u+x file1

      chmod g-rx file1

      chmod o=x file1

  使用数字表示权限:

     r : 4

    w : 2

     x : 1

    chmod 411 file1

  (2)umask

   文件默认权限补码

   umask可查询文件默认权限的补码,umask 数值, 可以设置文件默认权限的补码。

   计算文件默认权限:

   使用666 - 022 和777 - 022的方式求文件和目录默认权限的方式并不严谨,有时出错。

  正确计算方法:

  文件: 666 & (umask的反码)。

  目录 : 777 & (umask反码)

  如:   按照第一种方式666 - 033 = 633。但是实验实际结果为644

  具体如下:

        文件权限                              umask

     6       6        6                       0       3         3

   110    110  110                  000  011     011

                                                111  100     100    umask反码

    110   110   110

    111   100   100       &运算

    110   100    100

       6       4         4    

  umask具体数值由/etc/bashrc中代码控制:   

  if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then

    umask 002    #普通用户

   else

    umask=022   #系统用户

  fi

2. 特殊权限

  suid、sgid、Stickybit对应的数值为: u :4 , g :2, t : 1, 在权限中都占据x位。

 (1)suid

   只作用于二进制可执行文件,对目录无效。

   当运行此文件时会具有与文件属主一样的权限。

   chmod u+s a

  (2)sgid

   可作用于二进制可执行文件和目录。

   当作用于目录时,目录内新建的文件的所属组与目录所属组一样。

   当作用于文件时,执行此文件时将会具有与文件所属组一样的权限。

   chmod g+s a

  (3)Stickybit

    又称为粘滞位。

    只可作用于目录,目录内新建的文件只有root用户、文件属主、目录属主可以删除。

    chmod o+t

3.  扩展ACL

    以上权限的设置都是针对所有用户,ACL用于单独给某个用户设置权限。

    setfacl -m u:user1:ew- a.txt         #用户user1对文件a.txt权限。

    setfacl -R -m u:user1:rw-  dir1   #对目录设置扩展权限。

    getfacl a.txt                                     #查看a.txt扩展权限。

    setfacl -x u:user1 a.txt                  #删除用户user1对文件a.txt的扩展权限

    setfacl -b a.txt                                #删除所有用户对文件a.txt的扩展权限。

4. chattr  & lsattr

    参数 -a    :  只可追加

             -i      :  不可有任何修改

    chattr +a a.txt    , 出现a位,即使root也无法删除

    chattr +i a.txt   完全锁死

    chatrr  -a a.txt

    chattr -i a.txt

    lsattr   a.txt       #查看文件是否被用chattr设置过

 

 

 

 

 

  

    

 

你可能感兴趣的:(linux基础(10)--文件普通权限与特殊权限管理--RHEL6.5)