彻底搞懂Linux中10位含义的文件权限以及修改文件权限

本文详细介绍了Linux文件权限的结构,包括文件类型位、9个权限位的含义,以及如何通过chown和chmod命令更改文件的所属者、所属组和权限。重点讨论了文件的三种权限(读、写、执行)及其组合,以及不同用户角色的权限控制。同时,文章提供了文件权限的字符和数字修改方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 前言

1.1 创建用户及简单权限问题

1.2 抛出文件权限问题

  • 如下图:每一段各代表什么意思?文件的读写等权限又是怎么控制的?怎么修改文件的权限?
    在这里插入图片描述
  • 根据上面的图应该猜到本文主要介绍前4段,因为后面几段一看就懂,文件大小了、修改日期了,文件名了等,简单不用解释。
    好了,继续吧,先从简单的介绍起,请看……

2. 第二段(连接数)

  • 对于文件而言,此时这一字段数字表示这个文件所具有的硬链接数,一般都是1。
  • 而对于目录而言,此时这一字段数字表示的是该目录所含子目录的个数。
    • 新建空目录,此时一般都是2,表示该目录下有两个子目录。
      因为每一个目录都有一个指向它本身的子目录. 和指向它上级目录的子目录…,此默认子目录是隐藏的。如下:
      在这里插入图片描述

3. 第三段(所属者) + 第四段(所属组)

3.1 介绍Linux中的三种角色

  • 说第三段和第三段之前,先知道Linux中的三种角色,分别是:所有者(user)、所属组(group)、其他人(other),权限限制的不是用户,而是这个用户当前所处的角色。

3.2 更改文件的 所属组 和 所有者

  • 更改文件所属者,命令如下:
    chown -R susu ./aa     # 更改所有者
    
  • 更改文件所属组,命令如下:
    chgrp -R susu ff.txt     # 更改所属组
    
  • 即更改所有者,又更改所属组
    chown -R susu.susu bb   # 即更改所有者,又更改所属组
    
    或者
    
    chown -R susu:susu bb
    
  • 如下:
    在这里插入图片描述

4. 第一段(文件类型位 + 9个权限位)

4.1 解释(文件类型位 + 9个权限位)

4.1.1 第一位(文件的类型)

  • 第一位字母代表的意义是文件的类型。这里先介绍常用的3种
    d:代表目录文件
    -:代表普通文件
    l:代表软链接文件
    
    在这里插入图片描述

4.1.2 第2-10位(9个权限位)

4.1.2.1 文件的三组权限
  • 后九位三三为一组,分别代表:所有者权限(u–>user)、所属组权限(g–>group)、其他用户的权限(o–>other)。
    • 每组的第一位r 代表可读,- 代表不具备该权限;
    • 每组的第二位w 代表可写,- 代表不具备该权限;
    • 每组的第三位x 代表可执行,- 代表不具备该权限;
  • 比如 drwxr-xr-x,表示的就是文件类型是目录文件,该目录文件的所有者,可读可写可执行,所有组权限不可读,其他用户权限也不可读。如下:
    在这里插入图片描述
4.1.2.2 强调可执行权限(X)
  • 脚本文件的可执行权限表示你是否可执行脚本,目录的可执行权限是表示你可否在目录下执行命令。
  • 如果目录没有可执行(x)权限,则无法对目录执行任何命令,甚至无法通过 cd 命令进入目录, 即使目录仍然有读权限(r权限)也不行,脚本文件也是,如下:
    在这里插入图片描述
  • 但是对于脚步,如果没有x权限也要执行的话,可以通过其他方式,比如:
    在这里插入图片描述
4.1.2.2 总结文件的三种权限(字母权限与数字权限关系)
4.1.2.2.1 理解方式1
  • 如果,可读可写可执行用1表示,即:如果可读(有r权限),用1,否则用0(即:- 用0表示),w 和 x 同样道理,即:
    • r:1
    • w:1
    • x:1
  • 则,有下表的数字权限:
数字表示二进制表示有的权限描述
0000---无权限
1001--x只有 X 权限
2010-w-只有 w 权限
3011-wxw 和 x
4100r--只有 r 权限
5101r-x读和执行
6110rw-读写
7111rwx读、写、执行
  • 所以,如下要给一个文件授予:所有者最高权限(7)、所有组的权限读和执行(5)、其他用户无权限(0),则可以使用如下方式,例如:
    chmod 750 kk.sh
    
    在这里插入图片描述
4.1.2.2.2 理解方式2
  • 其实这个是在上面的基础上去理解的,比如:
    • 只有 X 权限(可执行):1
    • 只有 w 权限(写):2
    • 只有 r 权限(读):4
  • 所以,如果要得到读写可执行,就是7(7=1+2+4),如果得到读和可执行,就是5(5=1+4),就是如果记住124,其他的可以用加减运算,个人不是很喜欢,即然是在上面的基础上得到的,不如直接用二进制算,又不麻烦,来得还快,不过也是看个人喜欢了。

4.2 文件权限的更改方法

4.2.1 文件权限的字符修改方法

4.2.1.1 给所有角色修改权限
  • 其实上面也用过,过于简单,直接看吧,如下:
     chmod +x gg
     chmod -x gg
     chmod +r gg
     chmod -r gg
     chmod +xr gg
     chmod -xr gg
     chmod +xwr kk.sh  //注意:这里的w对其他用户不起作用,其他用户需要单独处理
    

在这里插入图片描述

4.2.1.2 指定角色修改权限
4.2.1.2.1 用户身份缩写
  • 指定角色修改权限的话,首先需要知道用户角色缩写,如下:
    -u:代表所有者(user)
    
    -g:代表所属组(group)
    
    -o:代表其他人(other)
    
    -a:代表全部身份(all)
    
4.2.1.2.2 指定角色修改权限(字符修改方法)
  • 如下:
    chmod u+r gg   //单角色 加 一个权限
    chmod u-r gg   //单角色 去 一个权限
    
    chmod u+rx gg  //单角色 加 多个权限
    
    chmod go+rx gg  //多角色 加 多个权限
    
    chmod a+rx kk.sh   //既然是a(所有),可以省略
    chmod -rx kk.sh   //省略a
    等等……
    
    在这里插入图片描述
    在这里插入图片描述

4.2.2 文件权限的数字修改方法

  • 其实上面字符修改法也不是很麻烦,如果你想用数字也可以,看上面的《4.1.2.2 总结文件的三种权限(字母权限与数字权限关系)》即可,完全解决问题。
    在这里插入图片描述

5. 总结

5.1 所属组 和 所有者命令

  • 如下:
    chown -R susu ./aa     # 更改所有者
    
    chgrp -R susu ff.txt     # 更改所属组
    
    chown -R susu.susu bb   # 即更改所有者,又更改所属组
    或者
    chown -R susu:susu bb
    

5.2 更改9位权限命令

  • 如下

     chmod +x gg
     chmod -x gg
     chmod +r gg
     chmod -r gg
     chmod +xr gg
     chmod -xr gg
     chmod +xwr kk.sh  //注意:这里的w对其他用户不起作用,其他用户需要单独处理
    
    chmod u+r gg   //单角色 加 一个权限
    chmod u-r gg   //单角色 去 一个权限
    
    chmod u+rx gg  //单角色 加 多个权限
    
    chmod go+rx gg  //多角色 加 多个权限
    
    chmod a+rx kk.sh   //既然是a(所有),可以省略
    chmod -rx kk.sh   //省略a
    等等……
    
    chmod 750 kk.sh
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@素素~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值