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

【Linux】权限管理和粘滞位理解

权限管理


文件访问者分类

文件和文件目录的所有者:u---User
文件和文件命令所有者所在的组的用户:g---Group
其他用户:o---Other

文件类型和访问权限

在这里插入图片描述
文件类型

d:目录文件
-:普通文件
l:软连接(类似windows下的快捷方式)
p:管道文件
b:块设备文件(硬盘,光驱)
s:套接口文件
c:字符设备文件(屏幕等串口设备)

基本权限

1、读(r/4):对文件而言具有读取文件内容的权限,对于目录而言具有浏览目录信息的权限;
2、写(w/2):对于文件而言具有修改文件内容的权限,对于目录而言具有删除移动目录内文件的去权限;
3、执行(x/1):对于文件而言具有执行文件的权限,对于目录来说具有进入目录的权限;
4-:表示不具备该权限

文件权限值得表示方法

字符表示方法在这里插入图片描述
8进制数值表示方法
在这里插入图片描述

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

chmod命令:设置文件的访问权限
格式:chmod [参数] + 权限 + 文件名
参数:R—递归修改文件的权限
注意:只有文件所有者和root用户才能改变文件权限

1、用户标识符 +/-=权限字符
+:向权限范围增加权限代号所代表的的权限
-:向权限范围取消权限代号所代表的的权限
=:向权限范围赋予权限代号所代表的的权限
u:所有者
g:拥有这同组用
o:其他用户
a:所有用户
栗子:chmod u+w /home/abc.txt
2、三位8进制数字
栗子:chmod 664 /home/abc.txt

chown命令:修改文件的所有者
格式:chown [参数] 用户名 + 文件名
chgrp命令:修改文件或目录的所在组
格式:chgrp [参数] 用户组名 + 文件名
umask命令:查看或修改文件掩码
格式:查看:umask ;;;修改:umask 权限值

umask;查看权限掩码
umask 权限值 :修改权限掩码

新建文件掩码默认权限(mask)=0666
新建目录默认权限(mask)=0777
但是并非使用这些默认权限,实际上创建文件或者是目录是权限还要受到 **权限掩码**的影响,实际
创建出来的文件或者说是目录的权限是:mask & ~umask

关于权限的总结

1、如果目录没有x(可执行)权限,则无法对目录执行任何命令,甚至无法cd到目录当中,
及时目录具有r(可读)权限
2、如果目录具有x(可执行)权限,但是没有r(可读)权限,则用户可以执行命令;可以cd
到目录中,但是执行ls命令,因为没有r(可读)权限,所以任然无法读出目录下文档
3、若果目录没有x(可执行)权限,那就无法cd到目录中去
4、如果目录没有r(可读)权限,那就无法执行ls等命令,查看目录中的文件
5、如果目录没有w(可写)权限,那就无法在该目录下创建或删除文件

粘滞位

设想只要用户具有目录的w(可写)权限,用户就可以删除目录下的文件,而不论这个用户是否具有这个文件的写权限;这是一件很可怕的事情,如果张三在该目录下创建的文件,如果李四有该目录的w(可写)权限,那么他就可以删除张三创建的文件;这很不合理且不合法;所以引入粘滞位
注意:当一个目录被设置为粘滞位时,则该目录下的文件只能由:

  • 超级管理员删除
  • 该目录的所有者删除
  • 该文件的所有者删除
用法:chmod +t 目录名

root@localhost ~]# chmod +t /home/ # 加上粘滞位
[root@localhost ~]# ls -ld /home/
drwxrwxrwt. 3 root root 4096 127 16:00 /home/
[root@localhost ~]# su - tc2
[tc2@localhost ~]$ rm /home/abc.c #litao不能删除别人的文件
rm:是否删除有写保护的普通空文件 "/home/abc.c"?y
rm: 无法删除"/home/abc.c": 不允许的操作

相关文章:

  • linux下inode节点理解
  • C语言函数
  • C语言数组
  • C语言表达式
  • C语言初识指针
  • C语言结构体
  • C语言深度剖析数据在内存中的存储
  • 深入了解指针
  • 字符串函数(认识 + 实现)
  • C语言内存函数(认识 + 实现)
  • 内存对齐和位段
  • 枚举和联合
  • 线性表,顺序表,链表,数组的区别与联系
  • c++实现顺序表
  • c++模拟实现单链表
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • [数据结构]链表的实现在PHP中
  • 【Leetcode】104. 二叉树的最大深度
  • 【跃迁之路】【444天】程序员高效学习方法论探索系列(实验阶段201-2018.04.25)...
  • 30天自制操作系统-2
  • egg(89)--egg之redis的发布和订阅
  • express如何解决request entity too large问题
  • Facebook AccountKit 接入的坑点
  • Java IO学习笔记一
  • javascript 哈希表
  • JavaScript 一些 DOM 的知识点
  • javascript面向对象之创建对象
  • Python实现BT种子转化为磁力链接【实战】
  • quasar-framework cnodejs社区
  • SQLServer之索引简介
  • VUE es6技巧写法(持续更新中~~~)
  • vue+element后台管理系统,从后端获取路由表,并正常渲染
  • Webpack 4x 之路 ( 四 )
  • 关于extract.autodesk.io的一些说明
  • 京东美团研发面经
  • 如何合理的规划jvm性能调优
  • 腾讯优测优分享 | 你是否体验过Android手机插入耳机后仍外放的尴尬?
  • 为视图添加丝滑的水波纹
  • 详解移动APP与web APP的区别
  • 运行时添加log4j2的appender
  • 《TCP IP 详解卷1:协议》阅读笔记 - 第六章
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • ​批处理文件中的errorlevel用法
  • ​油烟净化器电源安全,保障健康餐饮生活
  • # Swust 12th acm 邀请赛# [ K ] 三角形判定 [题解]
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • #pragma pack(1)
  • #控制台大学课堂点名问题_课堂随机点名
  • (26)4.7 字符函数和字符串函数
  • (WSI分类)WSI分类文献小综述 2024
  • (二开)Flink 修改源码拓展 SQL 语法
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (十二)springboot实战——SSE服务推送事件案例实现
  • (提供数据集下载)基于大语言模型LangChain与ChatGLM3-6B本地知识库调优:数据集优化、参数调整、Prompt提示词优化实战