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

news2024/9/22 15:46:29

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

  • 1. 前言
    • 1.1 创建用户及简单权限问题
    • 1.2 抛出文件权限问题
  • 2. 第二段(连接数)
  • 3. 第三段(所属者) + 第四段(所属组)
    • 3.1 介绍Linux中的三种角色
    • 3.2 更改文件的 所属组 和 所有者
  • 4. 第一段(文件类型位 + 9个权限位)
    • 4.1 解释(文件类型位 + 9个权限位)
      • 4.1.1 第一位(文件的类型)
      • 4.1.2 第2-10位(9个权限位)
        • 4.1.2.1 文件的三组权限
        • 4.1.2.2 强调可执行权限(X)
        • 4.1.2.2 总结文件的三种权限(字母权限与数字权限关系)
          • 4.1.2.2.1 理解方式1
          • 4.1.2.2.2 理解方式2
    • 4.2 文件权限的更改方法
      • 4.2.1 文件权限的字符修改方法
        • 4.2.1.1 给所有角色修改权限
        • 4.2.1.2 指定角色修改权限
          • 4.2.1.2.1 用户身份缩写
          • 4.2.1.2.2 指定角色修改权限(字符修改方法)
      • 4.2.2 文件权限的数字修改方法
  • 5. 总结
    • 5.1 所属组 和 所有者命令
    • 5.2 更改9位权限命令

1. 前言

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

  • 之前简单提到过创建新用户的权限问题,简单操作可以看下面的文章
    linux下新建用户并给用户授权以及解决sudo不能使用问题.
  • 上面只是简单操作,没有详细介绍权限问题,本次就针对文件权限详细的说一下,请继续……

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
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/708325.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Kubernetes删除ns(namespace)

一、前言 删除某个应用或模块的时候,可能会出现命名空间的状态一直处于Terminating状态,无论是重启k8s还是重启所有服务器都没卵用。 k8s遇到有无法删除的ns(namespace)命名空间的时候,可以尝试几种删除方式 二、删…

zabbix拓扑图主机拓扑的分组设置

目录 一、需求描述 二、实现方法 (一)第一步 编辑拓扑图 (二)第二步 编辑形状 (三)第三步 点“更新” 一、需求描述 在zabbix-监测-拓扑图-服务器拓扑图中,需要按照各业务来分组展示&#…

「STC8A8K64D4开发板」第2-5讲:I/O中断

第2-5讲:I/O中断 学习目的学习中断的相关概念。掌握中断向量大于 31的处理方法。掌握中断服务程序的编写。 STC8A8K64D4 I/O中断 STC8A8K64D4单片机的所有GPIO都支持I/O 中断,且支持 4 种中断触发模式:下降沿中断、上升沿中断、低电平中断和…

Pegasus开发环境

文章目录 Pegasus开发环境开发环境部署步骤1 安装 vs code步骤2 DecEco Device Tool 下载安装步骤3 下载Hi3861 Openharmony SDK步骤4 下载开发者工具步骤5 工程管理配置1. 打开DevEco Device Tool 主页 导入工程2. 选择Hi3861 Openharmony SDK目录3. 芯片选型4. 进行后续代码开…

Spring ServiceLocatorFactoryBean 小结

前言 偶然看到一篇微信公众号文章的分享 https://mp.weixin.qq.com/s/11VKseROGVcJHPCJ8xQ3XA,感觉挺有意思,在这里记录下。 为什么感觉有意思呢?是因为它通过spring 提供的ServiceLocatorFactoryBean 来实现服务定位模式,将服务…

linux-2.6.22.6内核i2c驱动框架源码分析

i2c是常见的通信协议,协议比较简单,只有数据和时钟两条线(SDA和SCL),i2c的通信分为主机和从机,主机一般占主导地位,从机可以有多个。 i2c通信的数据格式为(SDA上的数据):开始的7位里…

【完美复现】面向配电网韧性提升的移动储能预布局与动态调度策略【IEEE33节点】(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

机器学习实战8-基于XGBoost和LSTM的台风强度预测模型训练与应用

大家好,我是微学AI,今天给大家介绍一下机器学习实战8-基于XGBoost和LSTM的台风强度预测模型训练与应用,今年夏天已经来了,南方的夏天经常会有台风登陆,给人们生活带来巨大的影响,本文主要基于XGBoost模型和…

Python3 错误和异常 | 菜鸟教程(十五)

目录 一、简述 二、语法错误 三、异常 四、异常处理 (一)try/except 1、异常捕捉可以使用 try/except 语句。 2、以下例子中,让用户输入一个合法的整数,但是允许用户中断这个程序(使用 Control-C 或者操作系统提供…

ChatGPT从入门到精通学习路线

课程名称适应人群 ChatGPT从入门到精通,一站式掌握办公自动化/爬虫/数据分析和可视 点击上述名称,学习完整视频 全面AI时代就在转角,道路已经铺好了“局外人”or“先行者”就在此刻等你决定 1、对ChatGPT感兴趣并希望有人手把手教学的新手 …

apex/amp 安装问题解决

如何安装: 首先 pip uninstall apex卸载、apex文件夹也删除, 重新安装,具体安装步骤如下: git clone https://www.github.com/nvidia/apex cd apex python setup.py install --cuda_ext --cpp_ext 只要出现了下面的语句就是完成…

人工智能数学基础2:利用SciPy中的数值积分常用函数求定积分

利用SciPy中的数值积分常用函数求定积分 21/82.625 方法一:在 SciPy 库中,可以使用 quad 函数来进行数值积分。具体实现代码如下: from scipy.integrate import quaddef integrand(x):return x**2 1/x**4 # 定义被积函数result, error q…

vue+leaflet笔记之地图卷帘

vueleaflet笔记之地图卷帘 本文介绍了Web端使用Leaflet开发库实现地图卷帘效果的方法 (底图来源:中科星图),结合leaflet-side-by-side插件可以快速简单地实现地图分屏对比效果 ,示例效果如下图所示。 开发环境 Vue开发库:3.2.37 & Leaf…

FPGA-DFPGL22学习5-VERILOG

系列文章之 上章 FPGA-DFPGL22学习4-仿真平台学习 文章目录 系列文章之 上章前言一、Verilog 简介二、Verilog基础1.逻辑值2.进制3.标识符4.数据类型寄存器类型线网类型参数类型 5.运算符 三、Verilog 程序框架1.注释2.关键字3.程序框架 四、Verilog 程序语句1.结构语句2.赋值…

微信小程序+SpringBoot接入后台服务,接口数据来自后端

前言 前两天开发了一个微信小程序项目,只不过接口数据是自己设置的假数据。然后我就想将这些假数据替换掉。这些数据来自接口,之前做过前后端分离的项目,我就想能不能直接调用那些后端数据接口。结果是可以的。以下是自己编写的部分方法 步骤…

卷积神经网络--猫狗系列之下载、导入数据集

(由于是学习,所以文章会有一些报错及解决办法) 在Kaggle()获取数据集:(没有账号先去注册一个账号,在注册时可能会出现的问题见Kaggle注册出现一排“Captcha must be filled out.”!) https://www.kaggle.…

DOM编程事件与简单编程

文章目录 事件绑定绑定式事件监听方法event 事件对象client、offsetkeyCode 键盘事件事件冒泡阻止浏览器默认行为 DOM编程用户名输入框长度限制鼠标移入移出复选框全选DOM编程实现动态时钟第一种:第二种:第三种: 事件绑定 DOM编程中的事件&a…

excel只显示想要的内容

是 后面的FG等列是不需要的,选择F列,ctrl shift 右箭头 。选中后隐藏。

Ansible创建逻辑卷

Ansible创建逻辑卷: 环境准备: 清单文件: [dev] 192.168.110.129 [prod] 192.168.110.132 [all:vars] ansible_userroot ansible_passwordredhat磁盘准备: 在一台主机上添加一块sata接口的磁盘,一块不添加。 192.…

Linux--获取一长串目录的结构指令:tree

注意:这个tree指令不是Linux自带的,需要下载 yum install -y tree (-y的作用是免确定) 示例: