linghaiyan 发表于 2018-5-17 11:19:56

Linux文件的权限

一、文件属性的查看
用前面介绍的ls –l可以查看文件的属性信息,ls –ld可以查看目录的属性信息
     
  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》他可以修改用户的拥有者
         
   2》他可以同时修改用户的所属的组和其拥有者
      
   3》他可以只修改组
   
   所以基本用不到chgrp命令

  1、chmod命令
    1》用字符的修改方式
      chmodu+r|w|x|file   #表示给文件的拥有者增加读或者写或者执行file的权限
  chmodu-r|w|x| file   #表示删除文件拥有者读或者写或者执行的file权限
      chmodg+r|w|x /file   #表示给文件所属的组增加读或者增加删除或者进入file目录的权限
      chmodg-r|w|x /file   #表示删除文件所属的组读或者删除增加阿或者进入file目录的权限
      chmodu+rw,g+rwfile #表示给文件的拥有者增加读写权限,给文件所属的组
   
   
    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#表示修改该目录的拥有者,所属的组,其他用户对该目录有读增加删除和进入的权限
   
    用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/profile中umask的值
  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、命令setfacl,getfacl
      1》getfacl
  getfacl +/file 查看目录的特殊权力列表
  2》setfacl


  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,他是umask值0422中的4
  chmod u+s file
  chmod 4xxx file
  2.sgid
  对目录:当目录有sgid权限后,目录中新建的所有文件的所有组都自动归属到目录的所有组之中,和文件建立者所在的组无关
  设定方式:它的值sgid=2,他是umask值2000中的2
  chmod g+s file|dir
  chmod 2xxx file|dir
  3.sticky
  只针对于目录,当一个目录上有t权限,那么目录中的文件只能被文件的拥有者删除
  设定方式:它的值sticky=1,他时umask值的1000中的1
  chmodu+t direcotry
  chmod   1xxx direcotry
页: [1]
查看完整版本: Linux文件的权限