当前位置: 首页 > 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文件权限的解释就到这里了,如果有所帮助的话,点赞收藏吧!

相关文章:

  • 有源低通滤波器 sallen-key低通滤波器原理与计算
  • 《2025最新Java面试题全解析:从基础到高并发架构设计》
  • 速查手册:TA-Lib 超过150种量化技术指标计算全解 - 2. Momentum Indicators(动量指标)
  • 超大文件处理——文件强制切割:突破存储传输限制,提升数据处理效能—星辰大文化术——未来之窗超算中心
  • PKI 公钥基础设施
  • STM32学习笔记汇总
  • JavaWeb 课堂笔记 —— 13 MySQL 事务
  • 解决win10执行批处理报编码错误
  • Nodejs数据库单一连接模式和连接池模式的概述及写法
  • Meteonorm8-免费使用教程(详细教程-免费)
  • RK3506-rtlinux
  • Linux系统之部署TestNet资产管理系统
  • 豆瓣图书数据采集与可视化分析(一)- 豆瓣图书数据爬取
  • 【DT】USB通讯失败记录
  • 整流二极管详解:原理、作用、应用与选型要点
  • Replicate Python client
  • AUTOSAR图解==>AUTOSAR_SWS_EFXLibrary
  • fragment 异常 InstantiationException
  • 数据结构实验6.2:稀疏矩阵的基本运算
  • C++ STL 环形队列模拟实现
  • 大尺度色情语聊、撮合卖淫嫖娼!一些交友软件暗藏“桃色陷阱”
  • 3月赴美外国游客数量加速下滑
  • 中国政府援缅第七批抗震救灾物资运抵交付
  • 女子伸腿阻止高铁关门等待同行人员,相关部门已介入调查
  • 徐州沛县一村委会因无资质处理固废,被环保部门罚款19万元
  • 42岁北京大学科学技术与医学史系副教授陈昊逝世