Linux系统及操作 (06)

本文详细介绍了Linux系统的权限模型,包括基本访问权限、文件和目录的归属关系,以及如何使用chmod、chown和ACL策略进行权限控制。特别讨论了SetUID和StickyBit等高级权限概念,并展示了umask在文件创建掩码中的应用。
摘要由CSDN通过智能技术生成

Linux系统及操作 (05)

基本权限和归属

权限和归属

权限和归属概述
基本访问权限:
  • 读取:允许查看内容[ -read r ]

  • 写入:允许修改内容[ -write w ]

  • 可执行:允许运行和切换[ -excute x ]

  • 三者权限独立存在,共同决定最终权限

对于文本文件:
  • r读取权限:cat、less、grep、head、tail

  • w写入权限:vim、> 、 >>

  • x可执行权限:Shell与Python

对于目录:
  • r读取权限:ls命令查看目录内容。

  • w写入权限:能够创建、删除、修改等目录里的内容。

  • x 执行权限:能够cd切换到此目录下(进入此目录)。

基本归属关系:
  • 所有者**(除所有者、所属组以外的用户属主)**:拥有此文件/目录的用户 [ -user u ]

  • 所属组**(属组)**:拥有此文件/目录的组 [ -group g ]

  • 其他用户:除所有者、所属组以外的用户 [ -other o ]

    例 :zhangsan(所有者) zhangsan(所属组) 1.txt

解析文件/目录权限
  • 执行 [ ls -l 文件/目录 ]

    [ ls -ld /etc/ ]

    [ drwxr-xr-x. 141 root root 8192 11月 1 16:11 /etc/ ]

    权限位 硬链接 属主 属组 大小 最后修改时间 文件/目录地址

    第一位表示文件类型,[ d ] 是目录[ 1 ] 是链接[ - ] 是普通文件。

    属主[ root ] 的权限是 [ wxr ]。

    属组[ root ] 的权限是 [ xr ]。

权限控制

  • 查看数据权限 : [ ls -l ] / [ ls -ld ]

  • Linux中判断用户具备的权限:

    • 查看用户,对于该数据所处的身份

    • 查看相应身份的权限位

设置基本权限
[ chmod ]命令
  • 修改权限

  • 格式:chmod [ u / g / o / a ] [ + / - / = ] [ rwx ] 文件…

    1. [ chmod u-w /nsd10 ] #所有者去掉w权限

    2. [ chmod u+w /nsd10 ] #所有者加上w权限

    3. [ chmod g+w /nsd10 ] #所属组加上w权限

    4. [ chmod g=r /nsd10 ] #所属组重新定义权限

    5. [ chmod a=rwx /nsd10 ] #a表示所有人

    6. [ chmod u=—,g=rx,o=rwx /nsd10 ] #属主,属组,其他人 同时设定对应权限

  • [ -R ] : 表示递归修改权限

    [ chmod -R o=— /opt/aa ] # /opt/aa 目录下所有文件包括 /aa 的权限被修改。

  • 当 [ 目录 ] 没有权限时,目录下文件也相当于没有权限。

  • Linux 系统看重 目录的执行权限 [ x ] ,无执行权限无法进入无法 [ wr ] 。

文件/目录的默认权限
  • 权限位的8进制数表示

    • [ r ] = 4

    • [ w ] = 2

    • [ x ] = 1

      例:
      [ rwx ] = [ 7 ] # 4+2+1
      [ -wx ] = [ 3 ] # 0+2+1
      [ r-- ] = [ 4 ] # 4+0+0
      [ r-x ] = [ 5 ] # 4+0+1
      [ rw- ] = [ 6 ] # 4+2+0
      [ --x ] = [ 1 ] # 0+0+1
      [ — ] = [ 0 ] # 0+0+0

      [ chmod 700 /nsd14 ] # [ d rwx — — ]

归属控制

[ chown ] 命令
  • 修改归属关系

    • [ chown 属主 文件… ] # 仅修改所有者
      • [ chown zhangsan /nsd15 ]
    • [ chown 属主:属组 文件… ] # 修改所有者与所属组
      • [ chown zhangsan:wudang /nsd15 ]
    • [ chown :属组 文件… ] # 仅修改所属组
      • [ chown :wudang /nsd15 ]
  • [ -R ] 递归修改

Linux中判断用户具备的权限:
  1. 首先查看改用户或组是否有ACL策略。
  2. 查看用户,对于该数据所处的身份,顺序所有所有者 > 所属组 > 其他人,原则是匹配及停止。
  3. 查看相对应身份的权限位。

ACL策略管理

  • 文档归属的局限性:

  • 任何人只属于三种角色:属主、属组、其他人。

  • 特殊人群未包括。

ACL策略概述

  • ACL策略:针对特殊的人(组)实现更精细的控制。(优先级最高)
  • 对个别用户、个别组设置独立的权限

设置ACL权限

[ getfacl ]命令
  • 查看ACL策略,[ getfacl 文件 ]
[ setfacl ]命令
  • 格式:

    • setfacl [选项] u:用户名:权限 文件… #单独为文件打造属主权限
    • setfacl [选项] g:组名:权限 文件… #单独为文件打造属组权限
    • [ ls -ld 文件 ] 显示 [ d—rwx—+ … ] 是掩码 mask 的权限。
  • 常用命令选项

    • [ -m ]:修改ACL策略
      • [ setfacl -m u:bilibili:rwx /opt ]
      • [ setfacl -m u:bilibili:— /opt ] #拉黑处理
    • [ -x ]:清除指定的ACL策略
      • [ setfacl -x u:bilibili /opt ]
    • [ -b ]:清除所有已设置的ACL策略
      • [ setfacl -b /opt ]
    • [ -R ]:递归设置ACL策略

附加权限

概述

  • [ r,w,x ]无法满足所有情况,基本权限之外的权限被称为附加权限

    • Set UID ( 基本不用 )
    • Set GID
    • Sticky Bit

Set UID

  • 仅对可执行程序有意义
  • 当其他用户执行SUID标记程序时,具有此程序属主的身份和相应权限。(user变root)
  • 显示为 **[ s ]**或 [ S ]占用 属主(user) 的权限[ u:x ]位置。
  • [ chmod u+s /nsd26 ]

Sticky Bit

  • 粘滞位,Sticky Bit 权限。常叫 T权限

  • 只适用于目录,用来限制用户滥用写入权

  • 在设置了[ t ]权限的目录下,即使用户有写入权限,也不能删除或改名其他用户文档

  • 占用 其他人(Other) 的权限[ o:x ]位置。

  • 显示为 **[ t ]**或 [ T ],取决于其他人是否有 [ x ] 权限。

    • [ rwx ] ==> [ rwt ] #原先有[ o ]的执行权限时, 用 [ t ]
    • [ rw- ] ==> [ rwT ] #原先没有[ o ]的执行权限时, 用 [ t ]。无用!!
  • [ chmod o+t /nsd26 ]

Set GID(SGID权限)

  • 占用属组(Group)的 [ g :x ] 位。

  • 目录有效

  • 在一个具有SGID权限的目录下,新建的文档会自动继承父目录的属组身份

  • 影响未来

  • 显示为 [ s ][ S ],取决于属组是否有 x 权限

    • [ chmod g+s /nsd26 ]

    • [ /nsd26 ] 目录下所有内容的属组都与 [ /nsd26 ] 一样。

    • [ /nsd26 ] 目录下新建的内容的属组都与 [ /nsd26 ] 一样。

总结补充内容

实现 lisi 用户可以读取/etc/shadow文件内容

  1. 利用其他人身份
    chmod o+r /etc/shadow # 给 other 以 read 权限
  2. 利用所属组身份
    chown :lisi /etc/shadow # 把 lisi 用户作为属组加进去
    chmod g+r /etc/shadow # 给作为属组的 list 以 read 权限
  3. 利用所有者身份
    chown lisi /etc/shadow #
    chmod u+r /etc/shadow
  4. 利用ACL策略
    setfacl -m u:lisi:r /etc/shadow

[ umask ] 命令

  • [ umask ](用户文件模式创建掩码)可用于定义并分配每个用户的默认权限。

    • 用户定义的文件创建掩码。此掩码与默认系统权限相关联并更新它们。

    • 设置默认umask值的umask命令 { 0022 } 反值

手动建造家用户

  • /home 下的家目录有隐藏文件,直接 cp 即可。
    • /etc/skel/ 是 家目录的目版目录。
  • cp 完以后注意新的家目录[ bilibili ]的权限
  • [ chown -R bilibili:bilibili /home/bilibili ] 递归更改所属关系。
  • 20
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值