【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的ffmpeg python的关键帧抽取

《基于Linux的ffmpegpython的关键帧抽取》本文主要介绍了基于Linux的ffmpegpython的关键帧抽取,实现以按帧或时间间隔抽取关键帧,文中通过示例代码介绍的非常详细,对大家的学... 目录1.FFmpeg的环境配置1) 创建一个虚拟环境envjavascript2) ffmpeg-py

Linux脚本(shell)的使用方式

《Linux脚本(shell)的使用方式》:本文主要介绍Linux脚本(shell)的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录概述语法详解数学运算表达式Shell变量变量分类环境变量Shell内部变量自定义变量:定义、赋值自定义变量:引用、修改、删

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

Linux链表操作方式

《Linux链表操作方式》:本文主要介绍Linux链表操作方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、链表基础概念与内核链表优势二、内核链表结构与宏解析三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势六、典型应用场景七、调试技巧与

详解Linux中常见环境变量的特点与设置

《详解Linux中常见环境变量的特点与设置》环境变量是操作系统和用户设置的一些动态键值对,为运行的程序提供配置信息,理解环境变量对于系统管理、软件开发都很重要,下面小编就为大家详细介绍一下吧... 目录前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变

Linux系统中的firewall-offline-cmd详解(收藏版)

《Linux系统中的firewall-offline-cmd详解(收藏版)》firewall-offline-cmd是firewalld的一个命令行工具,专门设计用于在没有运行firewalld服务的... 目录主要用途基本语法选项1. 状态管理2. 区域管理3. 服务管理4. 端口管理5. ICMP 阻断

Linux实现线程同步的多种方式汇总

《Linux实现线程同步的多种方式汇总》本文详细介绍了Linux下线程同步的多种方法,包括互斥锁、自旋锁、信号量以及它们的使用示例,通过这些同步机制,可以解决线程安全问题,防止资源竞争导致的错误,示例... 目录什么是线程同步?一、互斥锁(单人洗手间规则)适用场景:特点:二、条件变量(咖啡厅取餐系统)工作流

Linux中修改Apache HTTP Server(httpd)默认端口的完整指南

《Linux中修改ApacheHTTPServer(httpd)默认端口的完整指南》ApacheHTTPServer(简称httpd)是Linux系统中最常用的Web服务器之一,本文将详细介绍如何... 目录一、修改 httpd 默认端口的步骤1. 查找 httpd 配置文件路径2. 编辑配置文件3. 保存

Linux使用scp进行远程目录文件复制的详细步骤和示例

《Linux使用scp进行远程目录文件复制的详细步骤和示例》在Linux系统中,scp(安全复制协议)是一个使用SSH(安全外壳协议)进行文件和目录安全传输的命令,它允许在远程主机之间复制文件和目录,... 目录1. 什么是scp?2. 语法3. 示例示例 1: 复制本地目录到远程主机示例 2: 复制远程主

如何搭建并配置HTTPD文件服务及访问权限控制

《如何搭建并配置HTTPD文件服务及访问权限控制》:本文主要介绍如何搭建并配置HTTPD文件服务及访问权限控制的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、安装HTTPD服务二、HTTPD服务目录结构三、配置修改四、服务启动五、基于用户访问权限控制六、