加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

Linux的权限管理:实现资源的分派

发布时间:2020-12-14 01:10:43 所属栏目:Linux 来源:网络整理
导读:Linux的权限管理:实现资源的分派 访问者分类 owner:所有者 group:所属组 other:其他人 每个文件都对访问者定义了一种权限 权限分类 对于文件来说 r:读权限 w:写权限 x:执行权限 对于目录来说 r:可以查看目录中的文件列表 w:可以在目录中创建文件 x
Linux的权限管理:实现资源的分派

访问者分类

  • owner:所有者
  • group:所属组
  • other:其他人

    每个文件都对访问者定义了一种权限

  • 权限分类

    对于文件来说

    • r:读权限
    • w:写权限
    • x:执行权限
      对于目录来说
    • r:可以查看目录中的文件列表
    • w:可以在目录中创建文件
    • x:可以进入该目录
      权限对应的数字表示方式
    • r:4
    • w:2
    • x:1

修改权限

  • chmod命令:

    修改权限的三种方式:

    1. 数字格式
      chmod 640 文件或目录 :对应的权限 rw-r-----
    2. 直接指明权限
      chmod (u,g,o)=(r,w,x)

      修改文件的属主或属组

  • chown命令:
    1. 修改文件的属主:chown username 文件或目录
    2. 修改文件的属组:chown username:groupname 文件或目录

      -R选项:对目录使用-R选项的时候,目录中的所有文件也会被修改属组或属主

  • chgrp命令:

    修改文件或目录的属组:chgrp [-R] groupname 文件或目录

    文件或目录创建时的默认权限

  • umask:用户创建文件或目录时的反掩码
    • root用户:umask 为022
    • 普通用户:umask 为002

      文件:权限=666-umask
      目录:权限=777-umask

      特殊权限

  • SUID:执行者临时拥有属主权限,进程发起后,属主不在是进程的发起者,而是文件的所有者(作用在二进制可执行文件才有效)

    设置:chmod u[+|-]s 文件

  • SGID:
    • 对于文件而言:让执行者临时拥有文件所属组的权限
    • 对于目录而言:此目录有写权限的用户,在该目录中创建文件时,文件的属组为目录的属组,而不是该用户的属组

      设置:chmod g[+|-]s 文件或目录

  • Sticky:对于一个多人可写的目录而言,设置了该权限会导致,每个用户只能删除自己的文件

    设置:chmod o[+|-]t 目录

  • 三种特殊权限对应的数字:
    • SUID:4
    • SGID:2
    • Sticky:1

      注意:以上的所有权限,都只是针对于普通用户才会生效,对于root用户而言无效

      设置文件的特定权限:(对root用户也会生效)

      1. 使文件不能删除、重命名或更改:chattr +i filename
  1. 取消特定权限:chatter -i filename
  2. 只允许向文件中追加内容:chattr [+|-]a filename
  3. 显示文件的特定权限: lasttr filename

访问控制列表ACL:

上述的权限只能是针对某些用户设定,要想针对某个用户设置特定的权限,就要用到ACL

  • setfacl命令的用法:
  • 选项:
  • -m,--modify-acl 更改文件的访问控制列表
  • -M,--modify-file=file 从文件读取访问控制列表条目进行更改
  • -x,--remove=acl 根据文件中访问控制列表移除条目
    setfacl -x u:tank test #清除tank用户,对test文件acl规则
  • -X,--remove-file=file 从文件读取访问控制列表条目并删除
  • -b,--remove-all 删除所有扩展访问控制列表条目
    setfacl -b test #清除所有acl
  • -k,--remove-default 移除默认访问控制列表
    --set=acl 设定替换当前的文件访问控制列表
    --set-file=file 从文件中读取访问控制列表条目设定
    --mask 重新计算有效权限掩码
  • -n,--no-mask 不重新计算有效权限掩码
  • -d,--default 应用到默认访问控制列表的操作
  • -R,--recursive 递归操作子目录
  • -L,--logical 依照系统逻辑,跟随符号链接
  • -P,--physical 依照自然逻辑,不跟随符号链接
    --restore=file 恢复访问控制列表,和“getfacl -R”作用相反
    --test 测试模式,并不真正修改访问控制列表属性
  • -v,--version 显示版本并退出
  • -h,--help 显示本帮助信息
  • 备份和恢复ACL
    主要的文件操作命令cp和mv都支持ACL,只是cp命令需要加上-p 参数。但是tar等常见的备份工具是不会保留目录和文件的ACL信息
    getfacl -R /tmp/dir1 > acl.txt
    setfacl -R -b /tmp/dir1
    setfacl -R --set-file=acl.txt /tmp/dir1
    setfacl --restore acl.txt
    getfacl -R /tmp/dir1

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读