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

news2024/9/22 1:44:56

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时间也会修改。

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

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

相关文章

NoSql数据库Redis知识点

数据库的分类 关系型数据库 ,是建立在关系模型基础上的数据库,其借助于集合代数等数学概念和方法来处理数据库 中的数据主流的 MySQL 、 Oracle 、 MS SQL Server 和 DB2 都属于这类传统数据库。 NoSQL 数据库 ,全称为 Not Only SQL &a…

网络丢包定位记录(二)

网卡驱动丢包 查看:ifconfig eth1/eth0 等接口 1.RX errors: 表示总的收包的错误数量,还包括too-long-frames错误,Ring Buffer 溢出错误,crc 校验错误,帧同步错误,fifo overruns 以及 missed pkg 等等。 …

K8S介绍+集群部署

Kubernetes介绍 官网:https://kubernetes.io/ 一、应用部署方式演变 1、传统部署:互联网早期,会直接将应用程序部署在物理机上 优点:简单,不需要其他技术的参与 缺点:不能为应用程序定义资源使用边界&a…

WAN广域网技术--PPP和PPPoE

广域网基础概述 广域网(Wide Area Network,WAN)是一种覆盖广泛地区的计算机网络,它连接不同地理位置的计算机、服务器和设备。广域网通常用于连接不同城市、州或国家之间的网络,它通过互联网服务提供商(ISP…

九芯电子革新健康检测!语音播报血压计ic芯片解决方案

血压计,可测量血压并将读数显示在屏幕上。为了提高老年人和视障人士的可用性,现代电子语音血压计已经开发出来,可提供当前血压读数的听觉反馈。这是通过集成语音芯片来实现的,该芯片将测量结果发声给用户。 (一&#x…

Java免税购物商城:Spring Boot技术实现

第二章 系统开发关键技术 2.1 JAVA技术 Java主要采用CORBA技术和安全模型,可以在互联网应用的数据保护。它还提供了对EJB(Enterrise JavaBeans)的全面支持,java servlet AI,JS(java server ages&#xff09…

《使用 LangChain 进行大模型应用开发》学习笔记(四)

前言 本文是 Harrison Chase (LangChain 创建者)和吴恩达(Andrew Ng)的视频课程《LangChain for LLM Application Development》(使用 LangChain 进行大模型应用开发)的学习笔记。由于原课程为全英文视频课…

银河麒麟桌面操作系统V10(SP1)离线升级SSH(OpenSSH)服务

目录 前言 准备工作 准备与目标服务器相同版本的操作系统 准备编译依赖包 下载OpenSSL源码包 下载OpenSSH源码包 升级OpenSSH服务 查看当前版本信息 安装编译依赖包 安装OpenSSL 安装OpenSSH 前言 OpenSSH是一个广泛使用的开源SSH(安全壳)协议的实现,它提供了安…

01-ZYNQ linux开发环境安装,基于Petalinux2023.2和Vitis2023.2

TFTP 服务器配置 安装安装 tftp-hpa 和 tftpd-hpa ;tftp-hpa 客户端,tftpd-hpa 为服务端 #安装 tftp-hpa 和 tftpd-hpa sudo apt-get install tftp-hpa tftpd-hpa配置服务器 #创建路径 mkdir -p ~/workspace/tftp-boot chmod 777 ~/workspace/tftp-b…

开放式耳机什么品牌好?2024年开放式蓝牙耳机排行榜推荐

​开放式耳机绝对是个不错的选择,它们长时间佩戴耳朵也不会感到疲劳,对耳朵的健康也很友好。虽然过去存在一些漏音的问题,但与它们带来的便利相比,这点儿小瑕疵几乎可以忽略不计。漏音可能会对他人造成干扰,也可能影响…

vue3(整合版)

创建第一个vue项目 1.安装node.js cmd输入node查看是否安装成功 2.vscode开启一个终端,配置淘宝镜像 # 修改为淘宝镜像源 npm config set registry https://registry.npmmirror.com 输入如下命令创建第一个Vue项目 3.下载依赖,启动项目 访问5173端口 …

年度巨献 | OpenCSG开源最大中文合成数据集Chinese Cosmopedia

01 背景 近年来,生成式语言模型(GLM)的飞速发展正在重塑人工智能领域,尤其是在自然语言处理、内容创作和智能客服等领域展现出巨大潜力。然而,大多数领先的语言模型主要依赖于英文数据集进行训练,中文数据…

python:给1个整数,你怎么判断是否等于2的幂次方?

最近在csdn上刷到一个比较简单的题目,题目要求不使用循环和递归来实现检查1个整数是否等于2的幂次方,题目如下: 题目的答案如下: def isPowerofTwo(n):z bin(n)[2:]print(bin(n))if z[0] ! 1:return Falsefor i in z[1:]:if i !…

NXP官方或正点原子mfgtool下载系统报错initialize the library falied error code:29

这是因为mfgtool版本或者源文件被破坏了,你可以重新下载一个被改过的mfgtool程序,我就是去原子官网重新在linux包里找了新的更迭过的mfgtool

VMware虚拟机因磁盘空间不足黑屏无法登录

在虚拟机里存储了一些文件之后,再打开发现进不去了,只有光标一直在左上角,登录的框都是黑的,具体如下: 明明知道登录框的存在却怎么也触碰不到它T_T ,先说解决方法: 产生这个问题的原因是因为磁…

yolov5/8/9模型在COCO分割数据集上的应用【代码+数据集+python环境+GUI系统】

yolov5/8/9模型在COCO分割数据集上的应用【代码数据集python环境GUI系统】 yolov5/8/9模型在COCO分割数据集上的应用【代码数据集python环境GUI系统】 1.COCO数据集介绍 COCO数据集,全称为Microsoft Common Objects in Context,是微软于2014年出资标注的…

多态与绑定例题

答案: B D C 知识点: 多态是相同方法不同的表现,分为重写和重载 重写体现在父类与子类不同表现,主要表现为子类重现父类的方法 重载体现在同一个类中的不同表现 绑定分为动态绑定和静态绑定 动态绑定是在运行时 静态绑定是…

动态规划算法:09.路径问题_最小路径和_C++

目录 题目链接:LCR 099. 最小路径和 - 力扣(LeetCode) 一、题目解析 题目: 解析: 二、算法原理 1、状态表示 2、状态转移方程 3、初始化 dp表初始化: 特殊位置初始化: 4、填表顺序 5、返回值 …

【HTTP】认识 URL 和 URL encode

文章目录 认识 URLURL 基本格式**带层次的文件路径****查询字符串****片段标识符** URL encode 认识 URL 计算机中非常重要的概念,并不仅仅是在 HTTP 中使用。用来描述一个网络资源所处的位置,全称“唯一资源定位符” URI 是“唯一资源标识符“严格的说…

超越极限!Qwen2.5 助力多领域智能应用

前沿科技速递🚀 近日,Qwen2.5 系列重磅发布,成为开源语言模型领域的又一里程碑。作为一款全新的通用语言模型,Qwen2.5 在支持自然语言处理的基础上,还在编程、数学等领域进行了专项优化。Qwen2.5 模型支持长文本生成&a…