【Linux】Linux权限

Hello everybody!在介绍完Linux操作系统常用的基本指令后,咱们就要开始权限的讲解了。如果没有看过我之前文章的宝子们可以去看看呦!有比较系统的指令讲解!

回到正题,关于权限,实际上没有大家想象中的那么神秘,权限在我们的日常生活中几乎无处不在。

比如:在QQ群,微信群中,群管理员,群主的权限就要比普通的群成员大。QQ音乐有了绿钻就有权听VIP歌曲。腾讯视频有了会员就有权跳过广告等等。

那么在Linux中的权限也大体类似。

1.普通用户&超级管理员

如果你买了云服务器,比如阿里云,华为云。那么你的账号的身份就是超级管理员,也就是root用户。

那么既然是超级管理员,它的权限和普通用户就是完全不一样的,自然有它特殊的地方。

比如说:

1.root用户可以创建普通用户。

2.root用户的家目录是/root。而普通用户的家目录是/home。

3.root用户的权利非常大,可以为所欲为,它几乎可以删除Linux系统中的全部文件,包括系统文件。而普通用户不可以。所以我们在使用root账号删除文件时务必小心谨慎。如果把Linux系统的根目录干掉了那么这个系统几乎报废了。

4.在Linux系统中,目前还没有发现root用户干不了的事情。

1.1root用户创建普通用户

1.2从root用户变成普通用户

直接su 用户名就可以了。需要注意的是,执行该指令后,你所在的路径没有变化,仅仅是身份发生了变化。

然后敲ctrl d可将身份回到root。

1.3从普通用户变成root用户

如果我本来就是一个普通用户,需要如何变成root用户呢?

其中一种方法是执行su root命令,同时需要输入root账号的密码(屏幕中不会显示),即可将身份从普通用户变成root用户。当然,敲ctrl d同样可以变回普通用户。

另一种方法就是执行su -命令,这时不光身份可以变成root用户,所在的路径也直接跳转到了root的家目录。就相当于直接以root身份登录账号。

不过不管以哪种方法将身份切换成root,都需要root账号的密码!

从上述讲解中可以看出,root变成普通用户不需要密码,普通用户变成root需要密码。由此可以看出root的权限是很大的。

2.文件的属性权限

现在我以root的身份创建一个文件。既然是文件,那应该也有对应的权限,不然随便一个用户来把这个文件改一下或是删掉那岂不是乱套啦?

这一条信息就详细地说明了当前文件的具体信息:

1.file.txt表示文件的名称。

2.Feb 4 16:36表示该文件最近创建或是修改的时间。

3.0表示文件的大小,单位是字节。

4.接下来是root root。那么连续的两个root是什么含义呢?

其实在Linux操作系统中有三种人,一种是文件的拥有者,一种是文件的所属组,一种是其他。

而第一个root表示文件的拥有者,第二个root代表文件的所属组。如果有一个用户比如说user_111,既不是拥有者也不是所属组,那就是其他。

Linux系统设置这三种人是为了用权限更好的管理文件,如果在一个大公司中,有2-3个小组在一台Linux机器上同时独立的做同一个项目,最后做的比较好的小组的成果被推销到市场。那么这些小组就是竞争关系,组内的文件肯定是不能给其他小组的成员看的。因此,为了方便管理文件,Linux操作系统有了所属组这个概念。上文中的第二个root就代表file.txt属于root分组。

5.最后-rw-r--r--一共有是个字符,开头的一个-表示文件的类型,如果是普通文件就是-,如果是目录文件就是d

如果创建一个目录,那么第一个字符就是d。

剩下9个字符,它们每三个一组,分别表示拥有者,所属组,其他对该文件所拥有的权限。每一组均为rwx。

对于普通文件:

r:表示是否具有读权限,如果是就是r,否,就是-。

w:表示是否具有写权限,如果是就是w,否,就是-。

x:表示是否具有可执行权限,如果是就是x,否,就是-。

3.修改文件的权限

在修改文件权限之前,我们需要搞清楚谁能够修改文件的权限。

1.该文件的拥有者可以修改。

2.root可以修改。

修改权限可用chmod指令。

u代表拥有者,g代表所属组,o代表其他,a代表所有人。

chmod后跟的选项可任意搭配,可以修改一种人的一个权限,一种人的多个权限,多种人的一个权限,多种人的多个权限!

4.使用权限

4.1使用普通用户测试权限

由于root是超级管理员,所以root不受权限限制,普通用户受权限限制。

下面我以普通用户的身份测试一下权限。

目前对于文件file.txt,user_111即是拥有者,也是所属组。对于拥有者,什么权限都没有。对于所属组,有读和写权限。

Linux系统在身份匹配的时候会优先匹配拥有者,然后才是所属组。若拥有者匹配成功且没有对应的权限,那么不会继续匹配所属组。

由此可以看出系统优先匹配拥有者,但没有读权限,所以系统直接拒绝打印文件内容。

同样的,没有写权限,系统拒绝往文件里写入内容。

同样也不可执行。

但是对于拥有者,我们加上了所有的权限,即可以写,也可以读。但奇怪的是,有可执行权限,为什么不可以执行呢?

注意可执行是有特殊要求的:

首先你要有可执行权限,其次你真的能够执行。

在我们举的例子中,file.txt是一个普通的文件,不是一个可执行文件,所以就算有了可执行权限也不可以执行!

4.2使用root用户测试权限

下面我用root身份测试权限。

首先,root可以更改文件的权限。这里,root把该文件的所有权限全部关掉了!

对于file.txt,root既不是拥有者,也不是所属组,而是其他。那么root既没有读权限,也没有写权限,更没有可执行权限。但是root可以打印该文件的内容!也就是说读权限无法限制root。

同样的,写权限也无法限制root。

但是这里要强调的是,不是可执行权限限制了root,而是file.txt压根就不是一个可执行文件。如果file.txt是一个可执行文件,root同样可以执行它!

并且更不要脸的是,file.txt根本就不是root的文件,但是root可以删掉它!这里也可以体现出root的权限非常大。

在Linux系统中,root就好比一个“老流氓”\(0^◇^0)/,没有root干不出来的事情,它不受权限约束!!!

5.总结

讲到这里,权限部分还没有讲完,这一篇文章只是介绍了普通文件的权限。我会在下一篇文章中接着介绍文件夹的权限和指令提权等内容,期待各位宝子们大驾光临!

总结一下权限存在的意义:

权限只是用来限制普通用户的,没有办法限制root。权限的意义是用来保证普通用户的文件的安全性。

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

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

相关文章

解决问题(Tensorflow框架):ImportError: cannot import name ‘merge‘ from ‘keras.layers‘

看了一圈解决方案,没有找到跟我这个相关的 这就是版本兼容性问题 说句最简单的,针对我这个问题 直接把merge删除点就完事了,因为新版的tensorflow框架这个里面不包含merge,所以直接删掉问题就解决了

Linux进程信号处理:深入理解与应用(2​​)

🎬慕斯主页:修仙—别有洞天 ♈️今日夜电波:its 6pm but I miss u already.—bbbluelee 0:01━━━━━━️💟──────── 3:18 🔄 ◀️…

ElementUI Form:Form表单

ElementUI安装与使用指南 Form表单 点击下载learnelementuispringboot项目源码 效果图 el-form.vue&#xff08;Form表单&#xff09;页面效果图 项目里 el-form.vue代码 <script> export default {name: el_form,data() {var checkAge (rule, value, callback…

计算机设计大赛 深度学习 opencv python 公式识别(图像识别 机器视觉)

文章目录 0 前言1 课题说明2 效果展示3 具体实现4 关键代码实现5 算法综合效果6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 基于深度学习的数学公式识别算法实现 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学…

中等题 ------ 链表

文章目录 1. 删除链表中的倒数第N个节点&#xff08;1&#xff09;栈&#xff08;2&#xff09;双指针&#xff08;快慢指针&#xff09; 2. 交换链表中的节点3. 两数相加4. 合并两个链表5. 旋转链表6. 奇偶链表7. 两两交换8. k 个一组翻转链表9. 分割链表10. 分隔链表11. 重排…

19.HarmonyOS App(JAVA)依赖布局DependentLayout使用方法

layout/ability_main.xml 显示位置不对&#xff1a;检查布局文件ohos:lef_of "id:tuzi",比如显示在兔子的左侧&#xff0c;这里就会显示不对。 需要id前没有$符号。改为&#xff1a; ohos:lef_of "$id:tuzi" <?xml version"1.0" encodi…

第六讲:文件操作

第六讲:文件操作 文件夹创建文件夹移动文件夹复制文件夹删除文件夹文件操作文件读取文件写入文件文件夹 创建文件夹 定义创建文件夹函数:chmk_path()定义一个函数 chmk_path(),这个函数的功能是创建文件夹。 首先需要导入操作系统接口模块——os 模块,这个模块中包含某些函…

前端小案例——滚动文本区域(HTML+CSS, 附源码)

一、前言 实现功能: 这个案例实现了一个具有滚动功能的文本区域&#xff0c;用于显示长文本内容&#xff0c;并且可以通过滚动条来查看完整的文本内容。 实现逻辑&#xff1a; 内容布局&#xff1a;在<body>中&#xff0c;使用<div>容器创建了一个类名为listen_t…

5.0 HDFS 集群服务建立教程

HDFS 集群是建立在 Hadoop 集群之上的&#xff0c;由于 HDFS 是 Hadoop 最主要的守护进程&#xff0c;所以 HDFS 集群的配置过程是 Hadoop 集群配置过程的代表。 使用 Docker 可以更加方便地、高效地构建出一个集群环境。 每台计算机中的配置 Hadoop 如何配置集群、不同的计…

【实战系列----消息队列 数据缓存】rabbitmq 消息队列 搭建和应用

线上运行图&#xff0c;更新不算最新版&#xff0c;但可以使用修改线程等补丁功能&#xff0c;建议使用新版本。 远程服务器配置图: 这个可以更具体情况&#xff0c;因为是缓存队列理所当然 内存越大越好&#xff0c;至于核心4核以上足够使用。4核心一样跑 这里主要是需要配置服…

2024美赛数学建模E题思路+代码

文章目录 1 赛题思路2 美赛比赛日期和时间3 赛题类型4 美赛常见数模问题5 建模资料 1 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 2 美赛比赛日期和时间 比赛开始时间&#xff1a;北京时间2024年2月2日&#xff08;周五&#xff…

断路精灵:探秘Sentinel熔断策略的神奇效果

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 断路精灵&#xff1a;探秘Sentinel熔断策略的神奇效果 前言熔断策略基础&#xff1a;数字断路精灵的初见熔断策略的基本原理&#xff1a;简单示例演示熔断策略的基本用法&#xff1a; 慢调用比例熔断策…

计算机网络-差错控制(奇偶校验码 CRC循环冗余码)

文章目录 差错从何而来从传感器层面提高信道比来减少线路本身的随机噪声的一个例子热噪声和冲击噪声 数据链路层的差错控制检错编码-奇偶校验码检错编码-CRC循环冗余码例子注意 差错从何而来 噪声通常指的是任何未预期的、随机的信号干扰&#xff0c;这些干扰可能源自多种物理…

linux ln命令-linux软链接、硬链接-linux软、硬链接的区别(一):硬链接

0、序 1、硬链接 1.1、创建硬链接的注意事项 (1)、硬链接不能指向目录&#xff08;不能对目录文件做硬链接&#xff09;。 (2)、硬链接只能在同一个文件系统中创建&#xff0c;不能在不同的文件系统之间做硬链接。就是说&#xff0c;链接文件和被链接文件必须位于同一个文件…

java设计模式:观察者模式

在平常的开发工作中&#xff0c;经常会使用到设计模式。合理的使用设计模式&#xff0c;可以提高开发效率、提高代码质量、提高代码的可拓展性和维护性。今天来聊聊观察者模式。 观察者模式是一种行为型设计模式&#xff0c;用于对象之间一对多的依赖关系&#xff0c;当被观察对…

vue3+threejs+koa可视化项目——模型文件上传(第四步)

文章目录 ⭐前言&#x1f496;往期node系列文章&#x1f496;threejs系列相关文章&#x1f496;vue3threejs系列 ⭐koa后端文件上传(koa-body)&#x1f496;自动创建目录&#x1f496;自定义目录上传&#x1f496;apifox自测上传接口 ⭐vue3前端上传模型文件&#x1f496; axio…

LeetCode --116

116. 填充每个节点的下一个右侧节点指针 给定一个 完美二叉树 &#xff0c;其所有叶子节点都在同一层&#xff0c;每个父节点都有两个子节点。二叉树定义如下&#xff1a; struct Node {int val;Node *left;Node *right;Node *next; } 填充它的每个 next 指针&#xff0c;让…

代码编辑器1.9.0

多线程&#xff01;&#xff01;&#xff01; #include <winsock2.h> #include <windows.h> #include <iostream> #include <stdlib.h> #include <string.h> #include <fstream> #include <conio.h> #include <stdio.h> #incl…

说说RDB和AOF

简介&#xff1a; 众所周知&#xff0c;redis是一个内存数据库&#xff0c;当机器重启后&#xff0c;内存中数据都会丢失。所以redis提供了两种持久化方式&#xff0c;即&#xff1a;RDB(保存一个时间点前的数据)和AOF(保存redis服务器端执行的每一条命令)。 RDB: RDB有两种…

【算法与数据结构】300、674、LeetCode最长递增子序列 最长连续递增序列

文章目录 一、300、最长递增子序列二、674、最长连续递增序列三、完整代码 所有的LeetCode题解索引&#xff0c;可以看这篇文章——【算法和数据结构】LeetCode题解。 一、300、最长递增子序列 思路分析&#xff1a; 第一步&#xff0c;动态数组的含义。 d p [ i ] dp[i] dp[i…