【Linux权限】 Linux权限管理 | 粘滞位

2024-02-21 02:20
文章标签 linux 管理 权限 粘滞

本文主要是介绍【Linux权限】 Linux权限管理 | 粘滞位,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • Linux权限管理
      • 什么是权限 ❓
      • 💦 文件访问者的分类(人)
      • 💦 文件类型和访问权限(事物属性)
    • 💦 文件访问权限的相关设置方法
    • 目录的权限
  • 粘滞位

Linux权限管理

什么是权限 ❓

权限本质上是决定某件事情,某人能否做。

  • Linux下文件权限的组成✨

文件权限 = 人 + 事物属性

文件权限属性:r(读)、w(写)、x(执行权限)

人 (不是特定具体的人,而是一种角色):拥有者、所属组、other (其它)

💦 文件访问者的分类(人)

  • 文件和文件目录的所有者:u —— User (中国平民 法律问题)
  • 文件和文件目录的所有者所在的组的用户:g —— Group (不多说)
  • 其它用户:o —— Others (外国人)

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

a) 文件类型

  • d:文件夹
  • -: 普通文件
  • l : 软链接 (类似 windows 的快捷方式)
  • b:块设备文件 (例如硬盘、光驱等)
  • p:管道文件
  • c:字符设备文件 (例如屏幕等串口设备)
  • s:套接口文件
    在这里插入图片描述

使用命令 ls -l (ll) 显示的多列属性的第一列对应的字符来区分它的文件类型。

b) 基本权限

i.读 ( r ):read 对文件而言,具有读取文件内容的权限;对目录而言,具有浏览目录信息的权限
ii.写 (w):write 对文件而言,具有修改文件内容的权限;对目录而言,具有删除移动目录内文件的权限
iii.执行 (x):execute 对文件而言,具有执行文件的权限;对目录而言,具有进入目录的权限

在这里插入图片描述

为什么没有other呢

  • 一个文件在判断它不是owner和group之后,只能是other了,所以没必要显示other

owner | group | other 存在的意义

  • 比如某个公司有员工10个人,他们分为AB两组各5人,公司要开发一款软件,分别交给AB两组独立开发,竞争后选择优者。因为公司比较穷,AB两组只能在同一台服务器上办公,因为是竞争关系,所以对于AB来说他们都有自己的权限管理----A不能访问B,B也不能访问A,假设没有group这个概念,一个项目(文件)要么是属于owner的,要么是属于other的。假设这时技术总监(非A组人)要看A组张三的代码,便没有权限,所以为了除竞争关系外的其他人方便访问,单独给出group予以区分。

💦 文件权限值的表示方法

a) 字符表示方法

在这里插入图片描述

b) 八进制数值表示方法

在这里插入图片描述

其中我们可以直接使用八进制来替代 u、g、o 中的 r、w、x ❗
在这里插入图片描述

$ chmod 777 file.txt
$ chmod 000 file.txt
$ chmod 640 file.txt

在这里插入图片描述

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

a) chmod

功能:设置文件的访问权限

格式:chmod [参数] 权限 文件名

常用选项:

  • R -> 递归修改目录文件权限
  • 说明:只有文件的拥有者和 root 才能改变文件权限

chmod 命令权限值的格式:

1️⃣ 用户表示符 +/-= 权限字符

+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限

用户符号:

  • u:拥有者

  • g:拥有者同组用

  • o:其它用户

  • a:所有用户

    💦实例:

$ chmod u-r file.txt
$ chmod g-rw file.txt
$ chmod o+rwx file.txt
$ chmod u+r,g+rw,o-rwx file.txt

在这里插入图片描述
在这里插入图片描述

注意:

  • 权限永远都是约束普通人的,root 是超级用户,它不受或几乎不受权限约束。这里的 owner、group、other 主要针对的是多个普通用户的情况。

Linux下文件后缀 ❗

Linux 系统对于文件后缀是不关心的,注意这里指的是系统不关心不是某些工具。而不是gcc编译器不关心,如果将.c后缀文件改为.txt文件内容不会变,但是Linux下的编译器不会通过。

b) chown

功能:修改文件的拥有者

格式:chown [参数] 用户名 文件名

实例:

$ sudo chown root file.txt//修改拥有者
$ sudo chown shijiaqing file.txt//修改拥有者
$ sudo chown :shijiaqing file.txt//修改所属组
$ sudo chown shijiaqing:shijiaqingfile.txt//可以将拥有者、所属组同时修改
$ sudo chown root:root file.txt//可以将拥有者、所属组同时修改

在这里插入图片描述

c) chgrp
功能:修改文件或目录的所属组

格式:chgrp [参数] 用户组名 文件名

常用选项:-R 递归修改文件或目录的所属组

实例:

$ sudo chgrp root file.txt
$ sudo chgrp shijiaqing file.txt

在这里插入图片描述

d) umask

功能:查看或修改文件掩码

格式:umask 权限值

说明:将现有的存储权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为 0022,普通用户默认为 0002

❓ 新建了一个 file 文件、dir 目录,是什么决定了它的默认权限 ❔

  • 一般普通文件,起始权限从 666(rw- rw- rw-) 开始

  • 一般目录文件,起始权限从 777(rwx rwx rwx) 开始

为啥它没按照一般情况来 ❓

  • 因为在 Linux 中,在设置权限时,系统默认会有一个 umask 权限掩码
    在这里插入图片描述

对于 0002 我们这里先不管第一个 0(它涉及后面的概念),其它位转成对应的二进制就是 000 000 010

umask 其中设定了一个概念:凡是在 umask 中出现的权限,都不应该在最终权限中出现

这里我们发现只有 other 里有一个写的权限,那么最终我们应该在 666(rw- rw- rw-) 或 777(rwx rwx rwx) 中去掉 other 的写权限,其中计算过程是:初始权限 & (~umask)

在这里插入图片描述

所以换句话说我们在系统中设定的 umask 就可以进行更改默认权限了 ❗
在这里插入图片描述
之后我们再新建 data.txt时,它们就无权限了:
在这里插入图片描述

目录的权限

  • 要在目录下创建文件,需要什么权限 ?

    增加 w 权限,能写文件但不能读文件

在这里插入图片描述
在这里插入图片描述
切换成root为我们修改一下w权限,再切换普通用户进入home路径
在这里插入图片描述

在这里插入图片描述

📝说明:

要在目录下创建文件,必须需要 w 权限。

同理不做演示:

  • 要读取目录下的文件列表,必须需要 r 权限。
  • 要进入一个目录必须具有 x 权限。

粘滞位

粘滞位(Sticky Bit)是一种文件系统权限的特殊标志,用于控制对目录中文件的删除权限。当粘滞位被设置在一个目录上时,只有目录的所有者、文件的所有者和超级用户才能删除或重命名该目录中的文件

  • 只有目录的所有者或超级用户才能设置或取消粘滞位。粘滞位对于确保公共目录中的文件安全性非常有用,防止意外删除或修改他人的文件
  • 在UNIX和类UNIX系统中,粘滞位可以通过文件系统的权限模式来设置。当一个目录的粘滞位被设置时,该目录的权限模式会以一个加号(+)和粘滞位标志(t)结尾。例如,一个具有粘滞位的目录权限模式可能是drwxrwxrwt。
  • 要设置粘滞位,可以使用chmod命令,并在权限模式中添加一个加号(+)和粘滞位标志(t)。例如,要将粘滞位设置在目录上,可以运行以下命令:
[root@VM-16-centos home /] chmod +t /home/ # 加上粘滞位
[root@VM-16-centos home /] ls -ld /home/
drwxrwxrwt. 3 root root 4096 219 16:00 /home/
[root@VM-16-centos home /] su - shijiaqing
[shijiaqing @VM-16-centos home /]$ rm /home/abc.c #shijiaqing不能删除别人的文件
rm:是否删除有写保护的普通空文件 "/home/abc.c"? y
rm: 无法删除"/home/abc.c": 不允许的操作

粘滞位只能给目录设置
一般是谁设置,谁才能取消

🐳当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由

  • 一、超级管理员删除
  • 二、该目录的所有者删除
  • 三、该文件的所有者删除

这篇关于【Linux权限】 Linux权限管理 | 粘滞位的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/730294

相关文章

Linux使用nload监控网络流量的方法

《Linux使用nload监控网络流量的方法》Linux中的nload命令是一个用于实时监控网络流量的工具,它提供了传入和传出流量的可视化表示,帮助用户一目了然地了解网络活动,本文给大家介绍了Linu... 目录简介安装示例用法基础用法指定网络接口限制显示特定流量类型指定刷新率设置流量速率的显示单位监控多个

ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法

《ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法》本文介绍了Elasticsearch的基本概念,包括文档和字段、索引和映射,还详细描述了如何通过Docker... 目录1、ElasticSearch概念2、ElasticSearch、Kibana和IK分词器部署

Linux流媒体服务器部署流程

《Linux流媒体服务器部署流程》文章详细介绍了流媒体服务器的部署步骤,包括更新系统、安装依赖组件、编译安装Nginx和RTMP模块、配置Nginx和FFmpeg,以及测试流媒体服务器的搭建... 目录流媒体服务器部署部署安装1.更新系统2.安装依赖组件3.解压4.编译安装(添加RTMP和openssl模块

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

linux下多个硬盘划分到同一挂载点问题

《linux下多个硬盘划分到同一挂载点问题》在Linux系统中,将多个硬盘划分到同一挂载点需要通过逻辑卷管理(LVM)来实现,首先,需要将物理存储设备(如硬盘分区)创建为物理卷,然后,将这些物理卷组成... 目录linux下多个硬盘划分到同一挂载点需要明确的几个概念硬盘插上默认的是非lvm总结Linux下多

SpringBoot中使用 ThreadLocal 进行多线程上下文管理及注意事项小结

《SpringBoot中使用ThreadLocal进行多线程上下文管理及注意事项小结》本文详细介绍了ThreadLocal的原理、使用场景和示例代码,并在SpringBoot中使用ThreadLo... 目录前言技术积累1.什么是 ThreadLocal2. ThreadLocal 的原理2.1 线程隔离2

浅析如何使用Swagger生成带权限控制的API文档

《浅析如何使用Swagger生成带权限控制的API文档》当涉及到权限控制时,如何生成既安全又详细的API文档就成了一个关键问题,所以这篇文章小编就来和大家好好聊聊如何用Swagger来生成带有... 目录准备工作配置 Swagger权限控制给 API 加上权限注解查看文档注意事项在咱们的开发工作里,API

linux进程D状态的解决思路分享

《linux进程D状态的解决思路分享》在Linux系统中,进程在内核模式下等待I/O完成时会进入不间断睡眠状态(D状态),这种状态下,进程无法通过普通方式被杀死,本文通过实验模拟了这种状态,并分析了如... 目录1. 问题描述2. 问题分析3. 实验模拟3.1 使用losetup创建一个卷作为pv的磁盘3.

Linux环境变量&&进程地址空间详解

《Linux环境变量&&进程地址空间详解》本文介绍了Linux环境变量、命令行参数、进程地址空间以及Linux内核进程调度队列的相关知识,环境变量是系统运行环境的参数,命令行参数用于传递给程序的参数,... 目录一、初步认识环境变量1.1常见的环境变量1.2环境变量的基本概念二、命令行参数2.1通过命令编程

Linux之进程状态&&进程优先级详解

《Linux之进程状态&&进程优先级详解》文章介绍了操作系统中进程的状态,包括运行状态、阻塞状态和挂起状态,并详细解释了Linux下进程的具体状态及其管理,此外,文章还讨论了进程的优先级、查看和修改进... 目录一、操作系统的进程状态1.1运行状态1.2阻塞状态1.3挂起二、linux下具体的状态三、进程的