当前位置: 首页 > news >正文

【对Linux文件权限的深入理解】

Linux文件权限

  • Linux下权限概念
    • 概念
    • 相关命令
  • Linux的文件权限管理
    • 1.文件访问者的分类(⼈)
    • 文件类型和访问权限(事物属性)
    • 文件权限值的表示方法
    • ⽂件访问权限的相关设置方法
    • 目录的权限(比较重要)
    • 粘滞位

Linux下权限概念

概念

Linux下有两种用户 : 超级管理员(root)与普通用户:

  • 超级用户(root) :可以在linux下进行任何操作,不受限制!
  • 普通用户:在linux下做权限范围内的事!
  • linux下root账号的命令提示符是 # , 普通用户的是 $

相关命令

命令:su
功能:切换用户
例子:如果想将用户切换到 “user”(某个用户的用户名),可以使用su "user"进行切换。
当然,我们也可以切换到root账户,指令是su - 或者 su root ,之后我们输入当前用户的密码就可以切换完成!
毋庸置疑,肯定不是任何人都有权利切换到root账号,否则我们所谈的权限问题就是无稽之谈,如果我们想su - 成功,就必须在/etc/sudoers 文件中为当前用户添加权限 (注意必须是root身份才能打开并修改此文件!

Linux的文件权限管理

所谓权限,其实就是人 + 事物的属性!
比如我们要执行一个文件,我们需要有权力执行他,并且这个文件具有可执行属性才能成功,二者缺一不可!

1.文件访问者的分类(⼈)

  • 文件或目录的所有者:u — user
  • 文件所属组:g — group
  • 其他用户: o — other
    在Linux系统下,我们在文件的视角将用户分为以上三个类型。后面对一个文件是否具有访问权限,也是根据这三种类型进行划分的!

文件类型和访问权限(事物属性)

根据之前我们所介绍的 , ls指令可以罗列出指定目录下的文件:
在这里插入图片描述
我们发现除了文件名之外,还有很多其他的信息。

  1. 第一列表示的是文件的类型
    • d:⽂件夹
    • -:普通⽂件
    • l:软链接(类似Windows的快捷⽅式)
    • b:块设备⽂件(例如硬盘、光驱等)
    • p:管道⽂件
    • c:字符设备⽂件(例如屏幕等串⼝设备)
    • s:套接⼝⽂件
  2. 第二到十列 , 共九个字符三三为一组,这三组分别表示该文件对 u(所有者),g(所属组),o(其他)的 r(读)w(写)x(执行)权限 ,若没有此权限则为 -
  3. 还有两列用户名信息,从左往右分别表示 所有者和所属组。

文件权限值的表示方法

  • 字符表示:
    rwx 分别表示 读,写,可执行权限。若没有权限则为 -
    例如 rwxrw-rw-
  • 八进制数表示
    我们发现对于每一个位都只有有此权限和无此权限两个状态,所以我们可以用二进制的0,1来表示权限的有无,而rwx三三一组,所以我们可以用一个八进制数来表示rwx权限
    例如 : 666 对应的字符表示为 rw-rw-rw-

⽂件访问权限的相关设置方法

  1. chmod

    • 功能:设置⽂件的访问权限
    • 格式:chmod [参数] 权限 ⽂件名
    • 常⽤选项:-R 递归修改⽬录⽂件的权限
    • 说明:只有⽂件的拥有者和root才可以改变⽂件的权限
    • 权限值格式:⽤户表⽰符+/-=权限字符
    • 实例:
      chmod u+w /home/abc.txt
      chmod 664 /home/abc.txt
  2. chown

    • 功能:修改⽂件的拥有者
    • 格式:chown [参数] ⽤⼾名 ⽂件名
    • 实例:
      chown user1 f1
      chown -R user1 filegroup1
  3. chgrp

    • 功能:修改⽂件或⽬录的所属组
    • 格式:chgrp [参数] ⽤⼾组名 ⽂件名
    • 常⽤选项:-R 递归修改⽂件或⽬录的所属组
    • 实例: chgrp users /abc/f2
  4. umask

    • 功能:查看或修改⽂件掩码
    • 说明 :
      新建⽂件夹默认权限=0666
      新建⽬录默认权限=0777
    • 实例:
      umask //查看文件掩码
      umask 0002 //修改文件掩码

但实际上你所创建的⽂件和⽬录,看到的权限往往不是上⾯这个值。
原因就是创建⽂件或⽬录的 时候还要受到umask的影响。
假设默认权限是mask,则实际创建的出来的⽂件权限是: mask & (~umask)

  1. file
    • 功能:查看文件类型
    • 实例:file code.cc
    • 在这里插入图片描述

目录的权限(比较重要)

目录也是文件,也有对应的rwx权限,那么目录的rwx分别指的是什么呢?
直接输出结论:

  • 可执⾏权限: 如果⽬录没有可执⾏权限, 则⽆法cd(进入)到⽬录中.
  • 可读权限: 如果⽬录没有可读权限, 则⽆法⽤ls等命令查看⽬录中的⽂件内容.
  • 可写权限: 如果⽬录没有可写权限, 则⽆法在⽬录中创建⽂件, 也⽆法在⽬录中删除⽂件.
    如果想要验证以上三点,我们可以利用前面介绍的修改文件权限的指令对目录权限修改,然后尝试是否能进入,创建文件,查看。

粘滞位

Linux之所以要设置权限的概念,就是为了限制我们进行一些危险或者不合理的操作,比如说:张三想要查看李四的一个文件,但李四并未对other设置读权限,张三一气之下就把李四的文件删除了,这样的行为是不合理的,但只靠我们之前了解的文件权限管理无法有效限制这种行为,所以提出了粘滞位的概念!

格式:chmod +t /home/ # 加上粘滞位
当⼀个⽬录被设置为"粘滞位"(⽤chmod +t),则该⽬录下的⽂件只能由

  1. 超级管理员删除
  2. 该⽬录的所有者删除
  3. 该⽂件的所有者删除

对linux文件权限的解释就到这里了,如果有所帮助的话,点赞收藏吧!

http://www.xdnf.cn/news/33049.html

相关文章:

  • 针对MCP认证考试中的常见技术难题进行实战分析与解决方案分享
  • 清华《数据挖掘算法与应用》K-means聚类算法
  • 考研408操作系统文件管理——4.2目录系统详解
  • Java PrintStream 类深度解析
  • QT聊天项目DAY06
  • 什么是事件循环
  • 2025年渗透测试面试题总结-拷打题库05(题目+回答)
  • 大学第一次笔记本清灰
  • Zephyr、FreeRTOS、RT-Thread 邮箱(Mailbox)对比分析
  • 【信息系统项目管理师】高分论文:论信息系统项目的采购管理(“营业工单系统”项目)
  • MySql Innodb详细解读
  • 【预告】【k8s系列6】RKE搭建Kubernetes集群
  • Codeforces Educational Round 177 Div. 2 【B题,C待补
  • Elasticsearch:使用 ES|QL 进行搜索和过滤
  • 嵌入式linux系统中内存管理的方法与实现
  • EKF公式推导
  • 工业级向量检索核心技术:IVF-PQ原理与全流程解析
  • [Android] 豆包爱学v4.5.0小学到研究生 题目Ai解析
  • 【IaaS自动化运维】Ansible与Terraform集成
  • 【仓颉 + 鸿蒙 + AI Agent】CangjieMagic框架(16):ReactExecutor
  • 【重学Android】02.Java环境配置的一些分享
  • 高精度算法(加、减、乘、除、阶乘和)​
  • QML Rectangle 组件
  • 直线轴承常规分类知多少?
  • 洛谷P1177【模板】排序:十种排序算法全解(1)
  • Keil A51汇编伪指令
  • 【机器学习】朴素贝叶斯算法:原理剖析与实战应用
  • Java学习手册:Web 应用架构概述
  • 卷积神经网络(CNN)详解
  • 【嵌入式】——Linux系统远程操作和程序编译