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

一、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操作,我们可以设置权限不让其他人读写,但是并不能限制其他人删除该文件,所以为了禁止大家互删文件,出现了粘滞位的概念

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

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C语言——如何进行文件操作

大家好,我是残念,希望在你看完之后,能对你有所帮助,有什么不足请指正!共同学习交流 本文由:残念ing原创CSDN首发,如需要转载请通知 个人主页:残念ing-CSDN博客,欢迎各位→…

在线意间AI绘图接口HTML在线页面

在线意间AI绘图接口写的HTML单页面 自适应单页面,下载可以直接在电脑上双击打开运行 手机上自行放到主机去通过域名访问

ae视频特效制作 -- After Effects 2024

After Effects 2024是一款专业的动态图形和视觉效果制作软件,广泛应用于电影、电视、广告和多媒体制作等领域。相比之前的版本,After Effects 2024在功能和性能方面都有了显著的提升,增加了许多新功能和改进。 首先,After Effect…

Python编辑开发 --- pycharm pro 中文

PyCharm Pro是一款专业的Python集成开发环境(IDE),由JetBrains公司开发。它为Python开发者提供了丰富的功能和工具,使得Python编程变得更加高效和便捷。PyCharm Pro具有智能代码编辑功能,能够自动完成代码、快速导航至…

Guava EventBus详解

概述 EventBus顾名思义,事件总线,是一个轻量级的发布-订阅模式的应用模式。相比于MQ更加简洁,轻量,它可以在一个小系统模块内部使用。 EventBus允许组件之间通过发布-订阅进行通信,而不需要组件之间显示的注册。它专门…

【数据结构 01】栈

一、原理 栈通常从数据结构和内存空间两个角度解释,从数据结构的角度,栈是一种线性结构表,只允许在固定的一端进行插入和删除元素,从内存空间角度,操作系统为函数和变量分配的内存空间通常在栈区,但是无论…

状态码400以及状态码415

首先检查前端传递的参数是放在header里边还是放在body里边。 此图前端传参post请求,定义为’Content-Type’:‘application/x-www-form-urlencoded’ 此刻他的参数在FormData中。看下图 后端接参数应为(此刻参数前边什么都不加默认为requestP…

基于Vue uniapp和java SpringBoot的汽车充电桩微信小程序

摘要: 随着新能源汽车市场的迅猛发展,汽车充电桩的需求日益增长。为了满足市场需求,本课题开发了一款基于Java SpringBoot后端框架和Vue uniapp前端框架的汽车充电桩微信小程序。该小程序旨在为用户提供一个简洁高效的充电服务平台&#xff0…

321倒计时素材视频在哪找?试试这4个软件

321倒计时素材视频在哪找?在这个信息爆炸的时代,视频素材在各种媒体平台上的需求日益增长。而倒计时视频素材作为其中一种,更是因其独特的功能和效果,被广泛应用于各种场景。那么,哪些软件提供倒计时视频素材呢&#x…

su模型库免费下载哪家好?

选择SU模型库免费下载的网站,需要根据个人的需求和偏好进行评估。以下是一些热门的SU模型库免费下载网站,供您参考: ①建e网:这是一个专业的室内设计资源平台,包括各种类型的SU模型,如家装、公装、商业空间…

echarts:获取省、市、区/县、镇的地图数据

目录 第一章 前言 第二章 获取地图的数据(GeoJSON格式) 2.1 获取省、市、区/县地图数据 2.2 获取乡/镇/街道地图数据 第一章 前言 需求:接到要做大屏的需求,其中需要用echarts绘画一个地图,但是需要的地图是区/县…

【测试运维】接口测试各知识md文档学习笔记第1篇(已分享,附代码)

本系列文章md笔记(已分享)主要讨论接口测试相关知识。目标:了解接口测试服务对象,基本作用,接口测试环境插件工具,掌握jmeter的使用,掌握接口测试的测试用例编写。熟悉Jmeter工具组成&#xff0…

【粉丝答疑(1)】使用LDRA Testbed(TBrun)进行单元测试编译时报自定义的数据类型错误_问题排查及解决

前言 最近有粉丝在后台提问,咨询使用Testbed(TBrun)进行单元动态测试时报错的问题。这个问题比较常见,于是想着写下本篇文章,希望对遇到类似问题的朋友有所帮助。 问题描述 事情的经过大概是这样子的: …

GC8838取代DRV8838直流电机驱动芯片,可应用在摄像机,玩具等产品上

GC8838 一款 12V 直流电机驱动芯片,为摄像机、消费类产品、玩具和其他低压或者电池供电的运动控制类应用提供了集成的电机驱动解决方案。芯片一般用了驱动一个直流电机或者使用两颗来驱动步进电机。 可以工作在 0~12V 的电源电压上,能提供高达 1.5A 持续…

智慧文旅:未来旅游业的数字化转型

随着科技的快速发展,数字化转型已经成为各行各业的必然趋势。旅游业作为全球经济的重要组成部分,也正经历着前所未有的变革。智慧文旅作为数字化转型的重要领域,正逐渐改变着旅游业的传统模式,为游客带来更加便捷、个性化的旅游体…

小项目:使用MQTT上传温湿度到Onenet服务器

前言 我们之前分别编写了 DHT11、ESP8266 和 MQTT 的代码,现在我们将它们仨整合在一起,来做一个温湿度检测小项目。这个项目可以实时地将 DHT11 传感器获取到的温湿度数据上传到 OneNET 平台。通过登录 OneNET,我们随时随地可以查看温湿度数…

macOS与Linux相互投屏的方法

很多人面对跨系统投屏都望而却步。其实只要找对方法,两台不同系统的电脑也可以相互投屏。 今天就来看看Linux系统和macOS系统如何相互投屏! 第一步,将Linux系统电脑和macOS系统电脑连接同一网络。假设是macOS系统投屏到Linux系统,…

javaweb项目,springboot幼儿园健康管理系统,界面美观,增删改查。

javaweb项目,幼儿园健康管理系统,界面美观,增删改查。 管理员,老师,学生三个角色。 功能:权限管理,咨询列表,教师列表,班级列表,健康档案列表,评…

使用QT实现播放gstreamer的命令(二)

一、前言 上一篇文章写到了,如何快速使用C来执行gstreamer的命令,如何在QT中显示gstreamer的画面,原文如下: https://blog.csdn.net/Alon1787/article/details/135107958 二、近期的其他发现: 1.gstreamer的画面显示在…

代码训练营Day.48 | 198. 打家劫舍、213. 打家劫舍II、337. 打家劫舍III

198. 打家劫舍 1. LeetCode链接 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 2. 题目描述 3. 解法 可以看作一个01背包问题。背包容量为所有房子中存储的金钱总数。 1. dp数组含义:dp[i][j]表示前i个房子在背包容量为j的情况下可以…