Linux相关概念和重要知识点(5)(权限的修改、时间属性)

1.权限的修改

(1)提权行为

普通用户是会受到权限的限制,但root账户无视一切权限限制,因此当我们要获取更高的权限,有一种办法就是将自己变成root或者短暂拥有和root一样的权力。

普通用户 -> root :su - + 回车 + root的登录密码。su可以切换账户,对于普通用户而言,你需要知道对方的密码,但root可以随便su,即进入任何账户而无需对方的密码。

root用户的命令行标识是#,普通用户是$

除了直接切换用户,我们还可以使用sudo + 指令,意思是在当前用户以root身份执行该指令。当前用户如果要使用这个功能,我们需要先把该用户加到白名单中。

使用root账户进入/etc/sudoers文件,添加光标所在行,一定要和上面root那一行保持格式一致,vim可用yy+p来操作

因为sudoers禁止修改,所以我们只能使用root加wq!强制保存来突破权限。

添加之后我们就可以在自己的普通账户使用sudo了,sudo之后我们需要输入自己账户的密码(注意是自己的,而不是root账户的密码),这也是为什么要添加白名单。在合作时,我们将信任的人添加到白名单中,之后他们就可以使用root权限来短暂处理一些需要高权限的事。如果后续出了问题,我们也可以用白名单迅速找到对应的人,所以输自己的密码而不是root密码,安全性也有保障。

(2)拥有组 user、所属组 group、other

①为什么有这三个组?

一个文件或目录对不同人来说权限是不一样的,也即不同人在同一个地方身份不同。在Linux中划分了三个组,创建文件的用户自动变成该文件的拥有组和所属组,其余用户都是other。设计拥有组和所属组的用处在于权限更细粒度的管理,我们可以修改所属组给另一个我们信任的人,这就能保证所属组和other做出区分。Linux中我们能对最多能对两个用户进行精确权限管理(拥有组和所属组),其余的other共享一套权限。

②身份认定

当我们刚开始创建文件时,创建文件的用户自动变成该文件的拥有组和所属组,那么用户可以既是拥有组也是所属组吗?就像一个人在家里可以是母亲也可以是妻子?答案是否定的。

Linux中身份认定是唯一的,我们不能既是又是。认定顺序是拥有组->所属组->other,只要有其一匹配,身份不再向后检验。这就意味着如果拥有组和所属组都是某个普通用户,但所属组的权限更大,最后这个普通用户也只有前者拥有组的权限

③权限识别

第一个明确是目录还是文件,从第二个开始依次表示user、group、other权限

(3)权限修改

权限 = 角色 + 身份,你可以将su和sudo理解为修改自己的角色,su切换用户,sudo则是用root的权限来执行指令。我们还可以修改文件的属性,即修改当前用户在文件那里的身份。

①chmod(修改各个组的权限)

这是修改三个组别拥有的权限,只有拥有组和root有资格执行这条指令

用这条指令,我们可以随意增加删除组别的权限,注意的是有文件的x权限并不意味着一定能执行,它首先得是可执行文件

修改权限的方式是chmod + (组别) (权限调整) 文件名,其中u、g、o是拥有组、所属组、other的缩写,a(all)代表所有组别。组别可以写ug,权限可以写rw,表示拥有组、所属组同时进行rw权限的修改,不同组进行不同权限修改之间用,逗号间隔

还有一种二进制->八进制表示权限的修改。先使用二进制表示某个组的权限:拥有该权限为1,没有为0,三位数就能表示所有可能,如111代表rwx,000表示---,110表示为rw-,随后将这些数字转为八进制,111->7,000->0,110->6。每个组别都这样处理,最后按拥有组、所属组、other排列表示三个组的权限,如644、777等。

每一种权限组合表示的八进制都是唯一的,3个权限2种状态,共8种状态,对应0~7刚好。

②chown(修改拥有组、所属组的用户) 、chgrp(修改所属组的用户)

只有root能执行这些指令,所以普通用户必须sudo。因为我们修改拥有组、所属组的用户本质是直接将该文件交给别人,和chmod这种单一修改身份不一样,交给别人某样东西要经过它的同意,所以只有靠root强制交给它。chown、chgrp交给自己不会被拦截,可行但没意义,只要改了拥有组和所属组的用户必定被拦截。

注意chown、chgrp和是否有目录修改权限没关系

chown能同时修改拥有组和所属组,chown (新的拥有组,没有可不写):(新的所属组,没有可直接不写冒号) 文件名。

注意如果要修改所属组但不修改拥有组一定要记得些冒号:,否则就修改到拥有组去了

chgrp只能修改所属组,功能上欠缺了一点,了解即可。

(4)权限掩码

当我们新建一个文件或者目录时,我们会发现默认权限是不一样的,并且为什么会是这种权限呢?能不能自定义默认权限呢?这就要引入权限掩码了

我们使用八进制描述三个组的属性,普通文件创建时默认为664,目录为775,之所以默认权限是这样,依赖umask权限编码。目录的起始权限是777(x允许进入目录),普通文件的起始权限是666(普通文件不可执行),但最终权限的二进制表示 = 转为9位二进制的起始权限 &(~权限掩码的二进制形式),如何简单理解呢?3位权限掩码展开成二进制有9位,如002会展为000 000 010。取反之后我们发现为111 111 101(三三对应拥有组、所属组、other的3个权限)。根据与运算的规则,1 & 任何值,与上什么值,最后的结果就是什么值。0 & 任何值,无论与上什么值,最后的结果就是0。也就是说,002就是减掉other中和2对应的权限w,因此我们会发现最终权限表示中目录和文件的other都少了w权限。

因此,最终权限 = 起始权限 - umask权限掩码对应的权限,但最终权限掩码 != 起始权限掩码 - umask权限掩码对应的权限,一定要做好区分

用umask (num)修改权限掩码为154,根据154权限掩码规则,文件会在起始权限666上做减法。一位一位看:1会减掉x,这里看上去rw确实如此,但实际上新建文件本来就没有x,所以1是不做任何削减权限处理的;5会减掉rx,实际减掉的是r,x本来就没有;4会减掉r,实际减掉r,所以这就是为什么54处理后没有区别,多出来的1本来就没有,会被抛弃。因此,我们不能直接用起始权限掩码 - umask权限掩码得到权限,要逐个考虑,有的掩码是无用的

(5)粘滞位

当用户有目录的w权限时,就可以删除该目录下的所有文件而无需对文件本身有权限,这极为危险。当合作时,由于拥有组和所属组只能由两个用户当,大部分人都会是other,要保证共享目录编辑还必须开放目录中other的w权限,这就会导致一些误删的情况出现。

粘滞位就可以避免这个问题,chmod o+t (目录名)或chmod +t (目录名),之后有且仅有root、目录所有组、文件所有组才有资格删除、移动目录里面的文件(other和所属组都被限制)

2.时间属性

(1)时间属性包含哪些?

stat (name) 可查询任何文件和目录的属性信息(修改时间、大小、inode等),其中时间属性很值得注意。

文件和目录有三种时间属性,Access最近访问时间、Modify最近修改时间、Change最近被改变时间。其中Modify是指最近修改内容的时间,Change是指最近修改属性的时间(注意区分)。

当我们使用chmod时,属性被修改了,但内容没有被修改,于是只有Change被修改, 而Modify不会被修改。注意当我们修改内容时,虽然名义上只会修改Modify,但多数情况也会修改属性(大小属性等,只要修改内容很可能受到牵连)。

Access时间并不算准确,因为在运行一些程序时有的文件会多次重复访问,如果系统一直与硬盘进行交互,那么计算机的效率会大打折扣。所以现在Access时间修改策略一般是当积累一定次数才会刷新,我们平时不用多注意。

(2)如何更新时间属性?

如果想要自己更新时间属性,可以考虑touch -m (name),这是修改Modify时间,但由于Modify是属性,修改属性也会修改Change的时间。另外还有touch -a (name)可以修改Access时间,同样Change时间也会修改。

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

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

相关文章

robomimic应用教程(一)——模型训练

Robomimic使用集中式配置系统来指定所有级别的(超)参数 本文介绍了配置(推荐)和启动训练运行的两种方法 目录 一、使用config json(推荐) 二、在代码中构造一个配置对象 三、查看运行结果 1. 实验结果会存在一个固定文件夹中…

地信、测绘、遥感、地质相关岗位招聘汇总

3s等相关专业25秋招&提前批招聘信息 该岗位信息表,覆盖全国各大省市,招聘岗位主要针对地信、测绘、地质、遥感、城规等专业。 1800WebGIS开发岗位汇总表 该信息表,主要是WebGIS开发岗为主,岗位要求熟悉熟悉Openlayers&#…

Python编码系列—Python桥接模式:连接抽象与实现的桥梁

🌟🌟 欢迎来到我的技术小筑,一个专为技术探索者打造的交流空间。在这里,我们不仅分享代码的智慧,还探讨技术的深度与广度。无论您是资深开发者还是技术新手,这里都有一片属于您的天空。让我们在知识的海洋中…

哪个快?用300万个图斑测试ArcGIS Pro的成对叠加与经典叠加

​​​ 点击下方全系列课程学习 点击学习—>ArcGIS全系列实战视频教程——9个单一课程组合系列直播回放 点击学习——>遥感影像综合处理4大遥感软件ArcGISENVIErdaseCognition 在使用ArcGIS Pro的过程中,很多朋友发现,Pro有个成对叠加工具集。很多…

计算机毕业设计之:教学平台微信小程序(

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…

全国职业院校技能大赛(大数据赛项)-平台搭建hive笔记

在大数据时代,数据量呈爆炸性增长,传统的数据处理工具已难以满足需求。Hive作为一个开源的数据仓库工具,能够处理大规模数据集,提供了强大的数据查询和分析能力,是大数据学习中的关键工具。在全国职业院校技能大赛&…

Git使用详解:从安装到精通

前言 什么是Git Git是一个分布式版本控制工具,主要用于管理开发过程中的源代码文件(Java类、xml文件、html页面等),在软件开发过程中被广泛使用。 可以理解: git是一个管理源代码的工具,主要用于企业团队开…

【数据结构C语言】【入门】【首次万字详细解析】入门阶段数据结构可能用到的C语言知识,一章让你看懂数据结构!!!!!!!

前言:欢迎各位光临本博客,这里小编带你直接手撕入门阶段的数据结构的C语言知识,让你不再看见数据结构就走不动道。文章并不复杂,愿诸君耐其心性,忘却杂尘,道有所长!!!&am…

学习笔记——RegNet:Designing Network Design Spaces

RegNet:Designing Network Design Spaces RegNet:设计一个网络设计空间 论文地址: https://arxiv.org/pdf/2003.13678 1、前言 在这项工作中,作者提出了一种新的网络设计范例。 作者的目标是帮助增进对网络设计的理解并发现跨设置…

网络安全:建筑公司会计软件遭受暴力攻击

黑客正在暴力破解基金会会计服务器上高权限账户的密码,这些账户广泛用于建筑行业,从而侵入企业网络。 这一恶意活动最先被 Huntress 发现,其研究人员于 2024 年 9 月 14 日检测到了此次攻击。 Huntress 已经发现这些攻击对管道、暖通空调、…

元学习的简单示例

代码功能 模型结构:SimpleModel是一个简单的两层全连接神经网络。 元学习过程:在maml_train函数中,每个任务由支持集和查询集组成。模型先在支持集上进行训练,然后在查询集上进行评估,更新元模型参数。 任务生成&…

时间安全精细化管理平台存在未授权访问漏洞

漏洞描述 登录--时间&安全精细化管理平台存在未授权访问漏洞导致与员工信息泄露 FOFA: body"登录--时间&安全精细化管理平台" 漏洞复现 POC: IP/acc/_checkinoutlog_/

Linux开发工具(git、gdb/cgdb)--详解

目录 一、Linux 开发工具分布式版本控制软件 git1、背景2、使用 git(1)预备工作——安装 git:(2)克隆远程仓库到本地(3)把需要提交的代码拷贝到本地仓库(4)提交本地仓库文…

基于协同过滤+SpringBoot+Vue的剧本杀服务平台系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于协同过滤JavaSpringBootV…

Liveweb视频汇聚平台支持GB28181转RTMP、HLS、RTSP、FLV格式播放方案

GB28181协议凭借其在安防流媒体行业独有的大统一地位,目前已经在各种安防项目上使用。雪亮工程、幼儿园监控、智慧工地、物流监控等等项目上目前都需要接入安防摄像头或平台进行直播、回放。而GB28181协议作为国家推荐标准,目前基本所有厂家的安防摄像头…

【数据结构-二维差分】力扣2536. 子矩阵元素加 1

给你一个正整数 n ,表示最初有一个 n x n 、下标从 0 开始的整数矩阵 mat ,矩阵中填满了 0 。 另给你一个二维整数数组 query 。针对每个查询 query[i] [row1i, col1i, row2i, col2i] ,请你执行下述操作: 找出 左上角 为 (row1…

Qt圆角窗口

Qt圆角窗口 问题:自己重写了一个窗口,发现用qss设置圆角了,但是都不生效,不过子窗口圆角都生效了。 无边框移动窗口 bool eventFilter(QObject *watched, QEvent *evt) {static QPoint mousePoint;static bool mousePressed f…

灵当CRM系统index.php存在SQL注入漏洞

文章目录 免责申明漏洞描述搜索语法漏洞复现nuclei修复建议 免责申明 本文章仅供学习与交流,请勿用于非法用途,均由使用者本人负责,文章作者不为此承担任何责任 漏洞描述 灵当CRM系统是一款功能全面、易于使用的客户关系管理(C…

在Linux中运行flask项目

准备 这里我准备了一个GitHub上某个大佬写的留言板的Flask项目,就用这个来给大家做示范了。 查看留言板的目录结构 查看主程序所用的库函数 只有一个第三方库 Flask 安装pip sudo apt install python3-pip -y测试 pip 安装成功 修改pip镜像源 修改pip的默认下载…

表格标记<table>

一.表格标记、 1table&#xff1a;表格标记 2.caption:表单标题标记 3.tr:表格行标记 4.td:表格中数据单元格标记 5.th:标题单元格 table标记是表格中最外层标记&#xff0c;tr表示表格中的行标记&#xff0c;一对<tr>表示表格中的一行&#xff0c;在<tr>中可…