• 文件权限


    权限管理:


    owner(属主),group(属组),other(其他)
    权限:read(4),write(2),execute(1)
    文件:
      r:可以使用查看类命令查看文件内容
      w:可以编辑文件内容
      x:文件可以发起一个进程,创建文件时都没有此权限
    目录:
      r:可使用查看类命令查看此目录内的文件名,如果仅有读权限则无法切换进此目录
      w:可以创建、删除文件,建立在w权限基础之上
      x:可以切换进此目录
      若目录权限为 -wx 则可以切换进此目录创建、删除文件,但查看不了目录内文件名

    [zyb@ZYB ~]$ ll -d test_dir1/
    drwxrwxr-x. 2 zyb zyb 45 Apr  2 15:25 test_dir1/
    [zyb@ZYB ~]$ ll test_dir1/
    total 0
    -rw-rw-r--. 1 zyb zyb 0 Apr  2 15:25 haha1
    -rw-rw-r--. 1 zyb zyb 0 Apr  2 15:25 haha2
    [zyb@ZYB ~]$ chmod u-r test_dir1/
    [zyb@ZYB ~]$ ll test_dir1/
    ls: cannot open directory test_dir1/: Permission denied
    [zyb@ZYB ~]$ chmod u+r-x test_dir1/
    [zyb@ZYB ~]$ ll -d test_dir1/
    drw-rwxr-x. 2 zyb zyb 45 Apr  2 15:25 test_dir1/
    [zyb@ZYB ~]$ ll test_dir1/
    ls: cannot access test_dir1/haha1: Permission denied
    ls: cannot access test_dir1/haha2: Permission denied
    total 0
    -????????? ? ? ? ?            ? haha1
    -????????? ? ? ? ?            ? haha2
    

      文件的权限实际上是文件的元数据信息,也叫属性信息,这些保存在inode中,每个文件都有一个缩影节点在元数据区域里,而每一个缩影节点都有一个缩影节点号,缩影节点号是缩影节点的属性,缩影节当中存储了每个节点的时间戳、权限、属主、属组、大小以及所指向的磁盘块等信息,所以用户的权限保存在文件属性中的inode中,并不是保存在文件的自身当中,而是保持在文件的属性数据当中,用stat命令查看

    权限应用模型:
      进程的属主,是否与文件的属主相同;如果相同,进程则以文件属主的权限来访问文件;否则,进程的属主所属的组,是否其中之一与文件的属组相同;如果相同,进程则以文件属组的权限来访问文件;否则,进程则以文件的其它用户的权限来访问文件

    文件权限类命令:chmod,chown,chgrp


    默认情况下不改变目录内文件权限,所有符号链接权限为777,所有对符号链接的权限操作都转换到源文件
    常用格式: chmod [option] OCTAL-MODE file ...
      -R 递归改变目录内文件的权限
      = 操作指定账户类型权限
      +/- 增加指定账户类型权限
      --reference=/path/to/somefile 根据指定文件修改权限
      -v 显示修改过程

    修改属主、属组
    chown [options] UserName[{:|.}GroupName] FILE...
      chown [options] UserName:GroupName FILE...
      chown [options] UserName.GroupName FILE...
      chown [options] :GroupName FILE... 只修改属组
    chgrp [options] UserName[{:|.}GroupName] FILE...

    umask
      创建文件:666-umask
        文件默认决不允许出现执行权限:666-023=644(默认+1)
      创建目录:777-umask
        root:022
        如果用户名和基本组名一致:002,否则为022

    特殊类权限:suid、sgid、sbit


    权值:suid 4  sgid 2  sticky 1
    suid:当一个文件具有此权限时,其他进程对此文件执行操作时是以文件的属主来运行此文件
      chmod -u+s File_Nameorchmod 4××× File_Name
      属主权限位的变化:x-->s--->S
    sgid:当一个目录具有此权限时,其他用户进入此目录后所创建的文件/目录的属组都为此目录的属组,并且能编辑/删除其他属于此属组的文件/目录
      chmod -g+s Dir_Nameorchmod 2××× Dir_Name
      属组权限位的变化:x-->s--->S
    sbit:当一个公共目录具有此权限时,其他用户可编辑同属组的文件/目录,但不能删除文件/目录,可以破坏文件
      chmod -o+s Dir_Nameorchmod 1××× Dir_Name
      其他用户权限位的变化:x-->t--->T

    FACL:文件访问控制列表


    在非root账号下给其他类型账号添加文件权限,CentOS7貌似是默认安装软件,7以下版本需额外安装
    命令:
      getfacl /path/to/file获取facl权限,若具有facl权限表示在最后一位有+

      setfacl -[R]m u:User_Name:perms添加额外用户权限,R选项使文件夹内部文件具有facl权限
      setfacl -[R]m g:Group_Name:perms添加额外用户组,R选项使文件夹内部文件具有facl权限
      setfacl -[R]m m:perms设置mask,添加用户/组的实际权限是perms与mask相与后的值,R选项使文件夹内部文件具有facl权限

      setfacl -m d:u:User_Name:perms要继承的权限,此后创建的文件的facl权限为default的值

    [root@ZYB tmp]# getfacl test_dir2/
    # file: test_dir2/
    # owner: zyb
    # group: zyb
    user::rwx
    user:test_user1:rwx
    group::r--
    mask::rwx
    other::r-x
    default:user::rwx
    default:user:test_user2:rwx
    default:group::r--
    default:mask::rwx
    default:other::r-x
    
    [test_user1@ZYB test_dir2]$ touch haha
    [test_user1@ZYB test_dir2]$ getfacl haha
    # file: haha
    # owner: test_user1
    # group: test_user1
    user::rw-
    user:test_user2:rwx		#effective:rw-
    group::r--
    mask::rw-
    other::r--
    

      setfacl -x u:User_Name取消额外用户权限
      setfacl -x g:Group_Name取消额外用户组
      setfacl -x m取消mask

  • 相关阅读:
    【转】iOS深入学习(Block全面分析)
    iOS—请求Web Service
    iOS设计模式——MVC
    iOS基础知识
    iOS学习——常用博客
    【转】使用segue页面间传递数据
    【转】storyboard之 prepareForSegue:sender:
    【转】NSDictionary和NSMutableDictionary用法详解
    配置.pch文件
    MKNetworkKit下载图片并显示在UIImageView上
  • 原文地址:https://www.cnblogs.com/hesper/p/8694425.html
Copyright © 2020-2023  润新知