一、文件属性的查看

  用前面介绍的ls –l可以查看文件的属性信息,ls –ld可以查看目录的属性信息

     Linux文件的权限_运维

     

    1、文件类型

       -          #普通文件

    d        #目录

    c        #字符设备

    s        #套接字

    p        #管道

    b        #块设备

    l          #连接     

    2、拥有者、所属组、其他用户的权限

       -         #代表对改文件或者目录缺失的权限

    r     #对改文件有读的权限

         #对改目录有读的权限

    w     #对改文件有写的权限

         #对目录是有增加删除的权限

    X     #对文件有执行其文件内描述的动作的执行权利

         #对目录有进入的权利

    3、”1”的意思

       对文件:文件内容被记录的次数

       对目录:目录中文件属性的字节数

    4、第一个root的意思

       对该文件的拥有者

    5、第二个root的意思

       改文件被拥有的组

    6、10的意思

        该文件内容的大小

    7、Jul 18 20:56

       文件最后一次被修改的时间

    8、feitian

       文件的名称

二、对文件所有人、所属组的管理   

    1、chown 命令

     1》他可以修改用户的拥有者

    Linux文件的权限_Linux_02     

     2》他可以同时修改用户的所属的组和其拥有者

    Linux文件的权限_运维_03   

     3》他可以只修改组

    Linux文件的权限_Linux_04    

     所以基本用不到chgrp命令

    1、chmod命令

    1》用字符的修改方式

        chmod  u+r|w|x|file   #表示给文件的拥有者增加读或者写或者执行file的权限

        chmod  u-r|w|x| file   #表示删除文件拥有者读或者写或者执行的file权限

        chmod  g+r|w|x /file   #表示给文件所属的组增加读或者增加删除或者进入file目录的权限

      chmod  g-r|w|x /file   #表示删除文件所属的组读或者删除增加阿或者进入file目录的权限

      chmod  u+rw,g+rwfile #表示给文件的拥有者增加读写权限,给文件所属的组

  Linux文件的权限_运维_05   

    

    2》用数字的方式修改文件的权限

        x      #等价于x,它的值为1

        w      #等价于write,它的值为2        

        r      #等价与read,他的值为4

         rwx------>7

         rw ------>6

         rx ------>5

         r ------>4

         w ------>2

         x ------>1

         chmod 777 file   #表示修改文件的拥有者,所属的组,其他用户对该文件有读写和执行的权限

        chmod 777 /file  #表示修改该目录的拥有者,所属的组,其他用户对该目录有读增加删除和进入的权限

    Linux文件的权限_Linux_06

    用grep 过滤掉显示的文件总数total,方便查看

    1、chgrp命令

      chgrp linux file         #将文件的所属的组修改为linux

三、修改系统默认创建的目录和文件的权限

   1 文件和目录默认的权限确定

     1》文件的默认权限

    666 减去umask 的值  #注意:如果umask的值大于666,该位置的权限就是0

   2》目录文件的默认权限    

          777减去umask的值

   2、修改umask

      1》临时修改umask

          umask+ 想要修改的umask

      2》永久修该umask

         修改/etc/profileumask的值

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

         60    umask 002      ##普通用户umask

         61 else

         62    umask 077       ##超级用户的umask                  

       修改/etc/bashrc中的umask

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

         60    umask 002      ##普通用户umask

         61 else

         62    umask 077       ##超级用户的umask                  

    注意:上述两个文件的umask值必须保持一致,如果不同可能会出现错误。在修改完上述文件后用 "."或者"source" 执行source file让系统重新加载文件内容

四、文件的访问控制

   1、acl定义

   acl = accesscontrol,指定特时用户对文件有特殊权力

   2、命令setfaclgetfacl

    1getfacl

          getfacl +  /file 查看目录的特殊权力列表

    2setfacl

    Linux文件的权限_Linux_07

          getfacl  /westos/

          #file: westos/        ##文件名称

          #owner: root         ##文件所有人

          #group: root         ##文件所有组

          user::rwx         ##拥有者权限

          user:student:rwx       ##特殊用户权限

          group::---           ##组权限

          mask::rwx            ##权限掩码,文件的最大权限

          other::---         ##其他人权限

          注意:mask的值小于用户ls看到的权限时,ls -l 能看到的权限是假的,最大为mask的权限。

          setfacl的参数

          -m    #为目录或者文件增加特殊权限列表

                setfacl-m <u|g>:<usrname|groupname>:<权限> 文件或者目录

          -x     #删除目录或者文件的特殊权限列表的一项

                setfacl-x <u|g>:<usrname|groupname> 文件或者目录

          -b     #关闭文件或者目录的特殊权限列表

                                                                 setfacl -b 文件或者目录      

五、特殊权限

   1、suid 

     对文件:执行该文件的动作时,以拥有者的身份执行                    

         设定方式:他的值suid=4,他是umask0422中的4

         chmod u+s file

         chmod 4xxx file

 

   2.sgid      

     对目录:当目录有sgid权限后,目录中新建的所有文件的所有组都自动归属到目录的所有组之中,和文件建立者所在的组无关

       设定方式:它的值sgid=2,他是umask2000中的2

         chmod g+s file|dir          

         chmod 2xxx file|dir

   3.sticky

    只针对于目录,当一个目录上有t权限,那么目录中的文件只能被文件的拥有者删除

       设定方式:它的值sticky=1,他时umask值的1000中的1

         chmod  u+t direcotry

         chmod     1xxx direcotry