Linux操作系统权限相关问题(一站式速通权限)

news2024/11/15 4:46:44

一、sudo命令

sudo yum install -y sl

sudo命令的作用 

不切换用户,就想让普通用户以root的身份,执行对应的指令

输入密码时,输入的是自己普通用户的密码,而不是root的密码!!!

sudo可以进行短暂的提权,在最一次验证完成之后,短时间内可以用sudo命令进行相关操作,不用输密码,直接提权。

使用sudo命令的前提

能使用sudo命令是因为,把相关的用户信息写进了系统的白名单(将当前用户添加到/etc/sudoers中),从此系统完全相信该用户,可以任意修改文件。

关于sudo的常见问题

问题:在提权的时候,为什么输入的是自己用户的密码,而不是root账户的密码
解释:给受信任的用户,提供最少的执行障碍。

问题:为什么都添加进系统白名单了,不直接用root

解释:(压岁钱的例子)系统完全相信用户,但是不代表放弃不相信用户的权力,sudo就代表用户向操作系统索要权力,但是系统可以制止!!!

二、如何理解Linux系统中的权限

什么是权限?

文件权限:人+文件属性

拿文件来说,文件权限可以分为两个部分:人和文件属性。文件可能只允许特定的人访问,除了限定人之外,文件的属性也是一个重要的方面,文件的属性可能是只读,也可能是可读可写。我们可以通过把对文件权限的理解延伸到Linux操作系统层面(Linux操作系统下一切皆文件):

角色:所有者(owner)、所属组(grouper)、其他人(other)。

问题:为什么角色就这三种,Linux操作系统又是一个多用户操作系统,它们之间冲突吗?

解释:用户只是操作系统中用户的具体体现,每个用户在操作系统中都被赋予相应的角色,系统通过对角色的限制来实现权限的控制。它们不仅不冲突,而且关系紧密。

问题:为什么会出现所属组的概念

解释:在默认情况下,文件的所属组和所有者是同一个人,所属组就是小组的概念,也就是说,可以把这个文件给自己小组内部的成员查看,除了自己和自己的小组成员,其他人就都是other,没有查看的权限。

示例:在一个公司内部,只有一台Linux机器,有A、B两个小组要进行相同项目的开发工作,两个组之间的开发是独立的,若是A组的程序员写好一份代码,想要给小组的其他成员看,但是不想给B组看,就需要引入“所属组”的概念才能实现。

文件属性

Linux系统下的文件类型与Windows系统下的文件类型差别很大

Linux系统不会识别文件的后缀,如果要使用文件后缀,仅仅是给用户做一个提示符号来使用,后缀本质是文件名的一部分。

Linux的文件类型是用"ll"指令在命令行中显示的第一列

Linux文件类型

1.-:普通文件(源代码、库文件、可执行程序、文件压缩包等等)

2.d:目录文件

3.c:字符设备文件-----比如:键盘,显示器....

4.b:块设备---磁盘

5.l:链接文件----快捷方式

6.p:管道文件

Linux系统中文件的权限

0217752072fb44daa018cbe8efc7fea3.png

文件属性前面有10个字符,第一个字符我们已经知道是文件属性,后面的9个字符其实需要3个3个地放在一起看,它们分别代表所有者(owner)、所属组(grouper)、其他人(other)的相应权限。

文件权限
读取权限(read)表示文件是否可以被读取。如果一个用户没有读取权限,那么他就无法查看该文件的内容。
写入权限(write)表示文件是否可以被修改。如果一个用户没有写入权限,那么他就无法更改该文件的内容。
执行权限(execute)表示文件是否可以被执行。对于可执行文件,执行权限允许用户运行该文件。对于目录,执行权限允许用户进入该目录并访问其内容。

例如-rwxrwxr-x的含义就是,这是一个普通文件,owner和grouper都具有读写和执行权限,other只具有读、执行的权限。

如果我们没有相应的权限而去对文件进行相关操作,命令行中会显示Permission denied

三、如何操作权限?

设置文件属性/设置文件所属角色:chown/chgroup

设置文件属性可以采用ugo+rwx方案,还可以采用八进制修改法

八进制修改法:假定有权限为1,无权限为0.与rwx相对应,如果要设置owner只有读的权限,对应下来就是2^2 = 4,也就是假定每一位都是二进制位,进行转换即可,

为什么要有权限?

Linux操作系统是一个多用户操作系统,要保证多个用户在同时使用的时候,不能相互影响,Linux权限存在的目的就是便于我们进行安全管理。

为什么我们创建的目录或者是普通文件,默认权限是我们所看到的这个样子???

drwxrwxr-x. 2 用户名 所属组      6 Jan 20 02:40 dir//目录
-rw-rw-r--. 1 用户名 所属组      0 Jan 20 02:40 file.txt//普通文件

就像上面这样,我们新创建一个文件或者目录,系统自动为我们分配了权限,为什么会这样分配权限呢?

Linux系统规定:目录的起始权限是777,普通文件的起始权限是666【均为八进制形式】

但是我们发现,如果是这样的,那么目录和文件的权限应该分别是rwxrwxrwx和rw-rw-rw-,这与我们创建出来的文件权限的文件类型还是有差异

其实在起始权限之外,还存在着权限掩码

$ umask
0002//八进制:每一位代表三个比特位,第一位无实义
//系统会默认配置好umask权限掩码,凡是在umask中出现的权限,都必须在起始权限中去掉

把002转化为二进制形式,即:000   000   010,把777转化为二进制形式,即:111   111   111

在目录的起始权限777中把other的写的权限去掉,就变成了111   111   101,即为775【rwxrwxr-x】.同理,在普通文件的起始权限666中把other的写的权限去掉,就变成了110   110   101.即为665【rw-rw-r--】

前面我们使用相减的方法,最终得到了正确的答案,然而,正确的计算方法不是这样的!!!

权限的计算方法 

最终权限 = 起始权限 & (~umask)
//~代表按位取反

我们来证明一下:设置umask的值为0131,创建一个普通文件,下面是我们的推论。 

0d8f9b3085264aeab19f18544a255150.png

 结果也正如我们所推断

-rw-r--rw-. 1 用户名 所属组      0 Jan 20 03:37 file.txt

为什么Linux系统会有这样的配置呢?

为什么系统要规定一个目录必须是777开始的?因为目录被创建出来,一般都是要进入的,没有x的权限,甚至都不能进入...没有r权限,没有办法查看目录内的内容,没有w权限,没有办法在目录中创建内容

四、粘滞位

Linux系统中有多个用户,我们需要在一个公共的目录下,进行临时文件的操作(增删查改)。

chmod +t /tmp/mydir

粘滞位只能设置在目录中,当一个目录被设置为“粘滞位”(用chmod + t),则该目录下的文件只能被下面这些人删除:1.超级管理员 2.目录的所有者 3.该文件的所有者

在一个公共的目录下,大家可以各自进行rwx操作,我们可以设置权限不让其他人读写,但是并不能限制其他人删除该文件,所以为了禁止大家互删文件,出现了粘滞位的概念

文件可以被其他人删除,不是由于文件的属性决定的,而是由公共目录能被所有人访问的性质决定的,所以要解决该问题,要从目录方面解决问题。

 

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

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

相关文章

500道微信小程序毕业设计题目,小程序新颖毕业选题推荐,建议收藏

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

通过Demo学WPF—数据绑定(一)✨

前言✨ 想学习WPF,但是看视频教程觉得太耗时间,直接看文档又觉得似懂非懂,因此想通过看Demo代码文档的方式进行学习。 准备✨ 微软官方其实提供了WPF的一些Demo,地址为:microsoft/WPF-Samples: Repository for WPF …

仿真APP在金属波纹管液压胀形工艺设计中的应用

一、背景介绍 金属波纹管是带有波纹状截面的金属管状零件,在工业中应用广泛。金属波纹管特殊的截面形状使其具备较好的柔韧性,能够在一定范围内伸缩弯曲。这一特性赋予波纹管两大用途:一是作为变形补偿器,可用于补偿管道设备由于…

MySQL原理(三)锁定机制

一、介绍: 1、锁的本质 业务场景中存在共享资源,多个进程或线程需要竞争获取并处理共享资源,为了保证公平、可靠、结果正确等业务逻辑,要把并发执行的问题变为串行,串行时引入第三方锁当成谁有权限来操作共享资源的判…

Windows Server 2025 LTSC 预览版来了

Windows Server 2025 LTSC 预览版来了 1. 安装 Windows Server 2025 LTSC 预览版2. 安装 VMware Tools3. Windows Server 2025 LTSC 预览版4. Windows Server 2025 LTSC 预览版下载地址 1. 安装 Windows Server 2025 LTSC 预览版 使用 VMware Workstation 安装, 安…

Mysql-事务(隔离级别,事务底层原理,MVCC)

什么是事务?有哪些特性? 事务:事务指的是逻辑上的一组操作,组成这组操作的各个单元要么全都成功,要么全都失败。 事务特性: 原子性(Atomicity): 原子性是指事务是一个不…

如何在 Ubuntu 中安装 Microsoft Edge 浏览器

微软终于聪明了一回,也学会了「打不过就加入」。Microsoft Edge 浏览器的 Linux 稳定版已经于 2020 年 10 月 23 日发布,并提供给 Linux 发行版使用。除了官方 Edge APT 源以外,还提供了.deb和.rpm格式的安装包。 Microsoft Edge 基于 Chrom…

###C语言程序设计-----C语言学习(7)#(调试篇)

前言:感谢您的关注哦,我会持续更新编程相关知识,愿您在这里有所收获。如果有任何问题,欢迎沟通交流!期待与您在学习编程的道路上共同进步。 一. 程序调试 1.程序调试介绍: 程序调试是软件开发过程中非常重…

大坑!react+thress.js

2. UI交互界面与Canvas画布叠加 | Three.js中文网 (webgl3d.cn) // canvas画布绝对定位 renderer.domElement.style.position absolute; renderer.domElement.style.top 0px; renderer.domElement.style.left 0px; renderer.domElement.style.zIndex -1; 我按照教程设置了…

C#小结:以Winform为例,总结一些C#在桌面开发中一些技巧

目录 一、给列表增加按钮&#xff0c;打印实体信息 二、嵌套子窗体 一、给列表增加按钮&#xff0c;打印实体信息 private void button1_Click(object sender, EventArgs e) {List<Student> studentList new List<Student>(){new Student() { Id 1, Name &quo…

Hadoop-MapReduce-源码跟读-MapTask阶段篇

一、源码下载 下面是hadoop官方源码下载地址&#xff0c;我下载的是hadoop-3.2.4&#xff0c;那就一起来看下吧 Index of /dist/hadoop/core 二、Mapper类 我们先看下我们写的map所继承的Mapper类 public class Mapper<KEYIN, VALUEIN, KEYOUT, VALUEOUT> {/*** 传递…

python二维高斯热力图绘制简单的思路代码

import numpy as np import matplotlib.pyplot as plt from scipy.ndimage import gaussian_filter import cv2# 生成一个示例图像 image_size 100 image np.zeros((image_size, image_size))# 在图像中心创建一个高亮区域 center_x, center_y image_size // 2, image_size …

爱可声助听器参与南湖区价值百万公益助残捐赠活动成功举行

“声音大小合适吗&#xff1f;能听清楚吗&#xff1f;”今天下午&#xff0c;一场助残捐赠活动在南湖区凤桥镇悄然举行&#xff0c;杭州爱听科技有限公司带着验配团队和听力检测设备来到活动现场&#xff0c;为南湖区听障残疾人和老人适配助听器。 家住余新镇的75岁的周奶奶身体…

mac截图翻译软件有哪些?五大超实用翻译软件

mac截图翻译软件有哪些&#xff1f;随着全球化的发展&#xff0c;跨语言沟通已成为日常生活和工作中不可或缺的一部分。然而&#xff0c;语言障碍常常让我们在阅读外文资料时感到困惑。为了解决这一问题&#xff0c;Mac用户需要一款强大的截图翻译软件来帮助他们快速理解外文内…

Docker 搭建MySQL主从复制-读写分离

一. 介绍 MySQL主从复制是一种常用的数据库高可用性解决方案&#xff0c;通过在主数据库上记录的数据变更&#xff0c;同步到一个或多个从数据库&#xff0c;实现数据的冗余备份和读写分离。在Docker环境下搭建MySQL主从复制和读写分离&#xff0c;不仅方便管理&#xff0c;还…

MES和QMS怎么选?

MES&#xff0c;即制造执行系统&#xff0c;主要用于监控和控制生产过程&#xff0c;提升生产效率、减少生产成本。万界星空科技MES可以提供实时的生产数据&#xff0c;帮助企业做出更准确的决策&#xff0c;并且能够自动化地执行生产任务&#xff0c;提高生产线的效率和灵活性…

视频转GIF动图实践, 支持长视频转GIF

背景 找了很多GIF动图制作的工具&#xff0c;比如将视频转成GIF, 或者将一系列图片转成GIF, 增加背景文案等等功能。很多收费或者用的一些三方库有点点卡顿&#xff0c;或者需要安装一个软件&#xff0c;所以就自己做一款纯前端页面级别的 视频转 GIF 动图工具。 最开始找到一…

LLM漫谈(四)| ChatDOC:超越ChatPDF性能并支持更多功能的阅读聊天工具

在过去的一年里&#xff0c;ChatGPT的兴起催生了许多基于GPT的人工智能工具&#xff0c;其中Chat PDF工具得到了广泛关注。这些工具对知识密集型专业人员来说尤其有价值&#xff0c;大大提高了生产力。随着Chat PDF工具的激增&#xff0c;选择正确的工具变得至关重要。 接下来&…

vue-computed 计算属性

一、computed 计算属性 在Vue应用中&#xff0c;在模板中双向绑定一些数据或者表达式&#xff0c;但是表达式如果过长&#xff0c;或者逻辑更为复杂 时&#xff0c;就会变得臃肿甚至难以维护和阅读&#xff0c;例如&#xff1a; <div>写在双括号中的表达式太长了,不利于阅…

Apache Commons Collection3.2.1反序列化分析(CC1)

Commons Collections简介 Commons Collections是Apache软件基金会的一个开源项目&#xff0c;它提供了一组可复用的数据结构和算法的实现&#xff0c;旨在扩展和增强Java集合框架&#xff0c;以便更好地满足不同类型应用的需求。该项目包含了多种不同类型的集合类、迭代器、队…