【Linux_】权限

news2024/11/24 14:12:40

【Linux_】权限

  • 心有所向,日复一日,必有精进
  • 专栏:《Linux_》
  • 作者:沂沐沐


 目录

【Linux_】权限

前言

Linux权限的概念(是什么)?

什么是权限?

Linux权限管理 

 文件访问者的分类(人)

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

Linux下文件类型

基本权限

文件权限值的表示方法

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

粘滞位

目录权限总结​​​​​​​


前言

Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel) “ ,但我们一般用户,不能直接使用kernel。
而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。如何理解?为什么不能直接使用kernel?从技术角度,Shell的最简单定义:命令行解释器(command Interpre)主要包含:

  • 将使用者的命令翻译给核心(kernel)处理。
  • 同时,将核心的处理结果翻译给使用者。

对比windows GUI,我们操作windows 不是直接操作windows内核,而是通过图形接口,点击,从而完成我们的操作(比如进入D盘的操作,我们通常是双击D盘盘符.或者运行起来一个应用程序)。

shell 对于Linux,有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运行出结果,通过shell解析给用户 


Linux权限的概念(是什么)?

Linux下有两种用户:超级用户(root)、普通用户

  • 超级用户:可以再linux系统下做任何事情,不受限制
  • 普通用户:在linux下做有限的事情。
  • 超级用户的命令提示符是“#”,普通用户的命令提示符是“$”

su命令 

📜语法: su [用户名]
🔨功能:切换用户。
例如,要从root用户切换到普通用户user,则使用 su user。 要从普通用户user切换到root用户则使用 su root(root可以省略),此时系统会提示输入root用户的口令

 ❗️ps:root是不受权限约束的,普通用户要受到权限约束; 如果普通用户切换到root用户,则需要输入root密码(Linux下输入密码不回显),而root用户切换到普通用户不用密码;

whoami命令

📜语法:whoami [--help][--version]

  • –help  在线帮助。
  • –version  显示版本信息。

🔨功能:打印当前有效的用户名称

sudo指令

📜语法:sudo [-b] [-u 新使用者账号] 要执行的命令

🔨功能:切换到指定用户执行命令。不写用户默认root。输入当前用户密码。

📌常用的选项与参数:

  • -b  :将后续的命令放到背景中让系统自行运行,不对当前的 shell 环境产生影响。
  • -u  :后面可以接欲切换的用户名,若无此项则代表切换身份为 root 。
  • -l:此选项的用法为 sudo -l,用于显示当前用户可以用 sudo 执行那些命令。

 ❗️ps:不切换用户,就想让普通用户以root的身份执行对应的指令,sudo command,短暂的提权;

如果使用sudo指令出现下面的情况

那就说明系统不相信你,怎么样使得系统相信你这个用户呢?请关注后序更新(诶嘿);

如果你可以运行,会让我输入密码,输入当前用户密码就可以了,你已经是被信任的人了,所以你输入你自己的密码证明是你自己就好了呀; (给受信任的人,最小的障碍);

什么是权限?

权限是约束人的,约束一类人或事物对事物的操作

目标事物,本来所具有的属性也决定了本身使用的权限 ,就像在视频网站视频聊天,视频网站的天然属性不能视频聊天,也没有能视频聊天的权限;

人和文件属性;这里所谓人其实就是角色,  举个栗子,假如说你是校长,你拥有管理学校的权限,是因为你的角色是校长,而不是以为你这个人;

Linux权限管理 

 文件访问者的分类(人)

  • 文件和文件目录的所有者: u---User(拥有者)
  • 文件和文件目录的所有者所在的组的用户: g---Group(所属组)
  • 其它用户: o---Others (其他人)

 

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

文件属性r-读权限 w-写权限 x-执行属性

我们是不是可以一下关联起来,被谁读写执行呢?所以我们需要人也就是访问者的权限;

文件由文件属性+文件内容,而上述就是文件属性,在Windows下,文件类型用后缀表示

例如 :我们可以看出该文件是docx类型

而在Linux中:

Linux下文件类型

  • d:文件夹
  • -:普通文件(源代码、可执行文件、库文件、文档压缩包等等)
  • l:软链接(类似Windows的快捷方式)
  • b:块设备文件(例如硬盘、光驱等)
  • p:管道文件
  • c:字符设备文件(例如屏幕等串口设备)
  • s:套接口文件

  ❗️ps:Linux和文件名中的后缀是,没有关系的,但是我们可以使用,使得我们用户能够通过后缀能快速的看出来这个是什么文件类型,but虽然Linux不认后缀名,但是工具例如:gcc是认后缀的;

基本权限

  

  • 读(r/4): Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
  • 写(w/2): Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
  • 执行(x/1): execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
  • “—”表示不具有该项权限

文件权限值的表示方法

a)字符表示方法

 b)8进制数值表示方法

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

既然要修改权限,那么必然修改两方面,设置文件属性,设置文件所属角色

chmod

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

🔨功能: 设置文件的访问权
📌常用选项:

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

chmod命令权限值的格式
用户表示符+/-=权限字符

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

用户符号:

  • u:拥有者
  • g:拥有者同组用
  • o:其它用户
  • a:所有用户 

 ❗️ps:如果我是root,我管你什么权限,我想怎么样就怎么样! 

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


🔨功能:修改文件的拥有者

如果我要给别人文件,我要怎么给?是不是需要得到其他人同意?如果别人给的是恶意程序呢?在线上也不可能打个招呼。如果我们用root用户可以吗?当然可以,毕竟人家超脱于规则之外。

chgrp

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


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

 八进制修改方案:

当我们新创建一个普通文件和目录时,

在Linux下,目录的起始权限是777;文件的起始权限是666; 

但是,如图所示似乎不对啊? 

系统默认配置了umask权限掩码:凡事在umask中出现的权限,必须在起始权限中去掉

umask

📜格式: umask 权限值

🔨功能:
查看或修改文件掩码
新建文件夹默认权限=0666
新建目录默认权限=0777
但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask
说明:将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用户默认为0002。

 ❗️ps:最终权限 = 起始权限 & (~umask) 

所以umask:默认:要去掉的权限位是1,要保留的是0; 

file指令 

📜语法: file [选项] 文件或目录...
🔨功能说明:辨识文件类型
📌常用选项:

  • -c 详细显示指令执行过程,便于排错或分析程序执行的情形。
  • -z 尝试去解读压缩文件的内容

粘滞位

Linux是多用户,但有时候需要在一个公共的目录下进行临时文件的操作;

 这个就是是一个临时文件操作,这个公共的目录,一般是有root创建;

目录的权限

  • 可执行权限: 如果目录没有可执行权限, 则无法cd到目录中.
  • 可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容.
  • 可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件

于是, 问题来了~~
只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写
权限;这好像不太科学啊, 我创建的一个文件, 凭什么被你可以删掉? 

但仔细想想还是合理的,我不读不写不执行,目录又是公共目录,我把你文件删了也很合理,对文件的删除也是目录权限,要删除文件也能瑟瑟发抖,如果目录没有可写权限,那也叫公共目录?

所以Linux引入了粘滞位;

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

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

目录权限总结

  • 目录的可执行权限是表示你可否在目录下执行命令。
  • 如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目, 即使目录仍然有-r 读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)
  • 而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限
  • 所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档

 好久没更新了,我要恢复生产力了!加油!
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2140.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

npm包学习

想开发自己的的工具包,那必然要借鉴一些常用的npm包来帮我们解决一些问题,下面就罗列一些在学习vue-cli实现原理时候遇到的一些依赖包吧。 1、chalk 用途:可以修改终端输出字符的颜色,类似css的color属性,npm地址&am…

100天精通Python(数据分析篇)——第62天:pandas常用统计方法与案例

文章目录每篇前言一、常用统计方法与案例1. 求和(sum)2. 求平均值(mean)3. 求最小值(min)4. 求最大值(max)5. 求中位数(median)6. 求众数(mode&am…

jQuery网页开发案例:jQuery 其他方法--jQuery 拷贝对象,多库共存,jQuery 插件

jQuery 对象拷贝 如果想要把某个对象拷贝(合并) 给另外一个对象使用,此时可以使用 $.extend() 方法 语法: $.extend([deep], target, object1, [objectN]) 1. deep: 如果设为true 为深拷贝, 默认为false 浅拷贝 …

做减法才是真本事,别以为你很能学,做加法一点都不难

文章目录 顶级的高手才敢做减法 前言 一、做减法才是真本事 二、大数据梦想联盟活动开启 顶级的高手才敢做减法 前言 大多数人不懂,不会,不做,才是你的机会,你得行动,不能畏首畏尾 大数据等于趋势,一…

Vue中computed和watch区别

前言 vue中的computed和watch我们经常会用到,那么在什么场景下使用computed和watch,两者又有什么区别呢,傻傻分不清楚。记录一下,温故而知新! computed computed是计算属性,基于data中声明过或者父组件传递…

makkefile文件自动化编译以及基础文件命令(补)

目录makefile文件:实现自动化编译基础文件命令find(查找)grep(过滤)| (管道)关机重启文件压缩解压分步压缩解压一步压缩解压makefile文件:实现自动化编译 文件名称必须是:makefile …

【day15】每日强训编程题——查找输入整数二进制中1的个数手套

查找输入整数二进制中1的个数_牛客题霸_牛客网 这道题非常简单,就一个思路: 按位与& 任何一个数按位与上1,如果这个数二进制的最后一位是1,那么按位与的结果就是1,否则就是0 代码思路:n按位与1后往右…

【splishsplash】PBD探究

上次我们探究了PBD是如何引入plishsplash的,以及其控制流。 https://blog.csdn.net/weixin_43940314/article/details/127569870 这次我们来讲如何在自己新建的类中控制PBD刚体。 上回说到 Simulator\PositionBasedDynamicsWrapper\PBDWrapper.cpp 中的 void PBD…

AXI协议详解(6)-原子访问

原子访问 本章介绍了 AXI 协议如何实现排他访问和锁定访问机制。 它包含以下部分: 原子访问排他访问锁定访问 6.1 原子访问 为了实现原子访问权限,ARLOCK[1:0] 或 AWLOCK[1:0] 信号提供排他访问和锁定访问。 表 6-1 显示了 ARLOCK[1:0] 和 AWLOCK[1:…

3.NLP基础:文本可视化简述

1.文本可视化的流程 文本可视化依赖于自然语言处理,因此词袋模型、命名实体识别、关键词抽取、主题分析、情感分析等是较常用的文本分析技术。文本分析的过程主要包括特征提取,通过分词、抽取、归一化等操作提取出文本词汇级的内容,利用特征…

Qt 集成 FFmpeg 实现颜色格式转换

目录 1. Qt 集成 FFmpeg 1.1 下载 FFmpeg 1.2 Qt 集成 FFmpeg 1.2.1 修改 .pro 文件 1.2.2 放入 dll 文件 1.2.3 代码中使用 FFmpeg 2. 图像格式转换 3. 预览 4. 项目地址 项目需要,写个小工具来实现图像颜色格式的转换,主要的 Feature 如下&am…

百度最强中文AI作画大模型

前言 最近文生图领域的发展可谓是分生水起,这主要是得益于最近大火的扩散模型,之前笔者也写过一篇关于文本生产3D模型的文章,大家感兴趣的可以穿梭: https://zhuanlan.zhihu.com/p/570332906 今天要给大家介绍的这一篇paper是百度…

AXI协议详解(10)-非对齐传输

非对齐传输 本章介绍 AXI 协议如何处理未对齐的传输。 它包含以下部分: • 未对齐的传输 • 示例 10.1 关于未对齐传输 AXI 协议使用基于突发的寻址,这意味着每个事务由多个数据传输组成。 通常,每个数据传输都与传输大小对齐。 例如&…

Linux入门

Liunx 一计算机发展历史第一台计算机的诞生时代背景线计算机的发展线国家线时间线收束Liunx诞生操作系统简述购买云服务器以及登录增加用户总结学习的同时别忘了每天运动! 身体才是革命的本钱 计算机发展历史 第一台计算机的诞生 第一台计算机在1946年2月14日在美国…

webpack学习踩坑笔记(持续更新中...)

目录 学习内容: 1.5使用plugin 1.6 使用DevServer 学习内容: 《深入浅出webpack》 深入浅出Webpack Dive Into GitBook 因为很多内容书上已经写了,这里主要是记录一下个人看书过程中遇到的坑 1.5使用plugin 这一部分介绍了一个可以把…

vue3事件处理

获取到用户点击或者勾选的值 <li click“clici(item)” v-for"item in data" :key"id"> {{item}}</li> <script> clici(item){ } </script> v-model 实现数据的双向绑定 v-model.lazy 只有当用户提交或enter键后才触…

【数据结构】动态顺序表(C语言实现)

文章目录0. 前言1. 线性表2. 顺序表2.1 概念及结构3. 动态顺序表的实现3.1 定义结构3.2 接口函数总览3.3 初始化3.4 检查增容3.5 尾插3.6 尾删3.7 头插3.8 头删3.9 查找3.10 指定下标位置插入3.11 指定下标位置删除3.12 修改3.13 打印3.14 销毁4. 完整代码SeqList.hSeqList.cte…

HTML常见标签总结

目录 1.标题标签 2.段落标签 3.字体修饰标签 4.图片标签 5.超链接标签 6.表格标签 7.列表标签 8.表单标签 9.下拉菜单 10 多行文本框 1.标题标签 一级标题是<h1></h1>中间填上标题的内容,一共可以设置六级标题,数字越小,标题就越大越粗 我们测试一段代码 …

深度残差收缩网络(Deep Residual Shrinkage Networks for Fault Diagnosis )

摘要-本文开发了新的深度学习方法&#xff0c;即深度残余收缩网络&#xff0c;提高来自高噪声振动信号的特征学习能力&#xff0c;并实现较高的故障诊断准确性。软阈值作为非线性转换层插入到深层体系结构中&#xff0c;以消除不重要的特征。此外&#xff0c;考虑到通常为阈值设…

大数据编程实验一:HDFS常用操作和Spark读取文件系统数据

大数据编程实验一&#xff1a;HDFS常用操作和Spark读取文件系统数据 文章目录大数据编程实验一&#xff1a;HDFS常用操作和Spark读取文件系统数据一、前言二、实验目的与要求三、实验内容四、实验步骤1、HDFS常用操作2、Spark读取文件系统的数据五、最后我想说一、前言 这是我…