当前位置: 首页 > news >正文

【Linux笔记】Linux基础权限

【Linux笔记】Linux基础权限

  • 一、Linux权限的概念
    • 1.1、Linux中一切皆文件
    • 1.2、文件访问者的分类
    • 1.3、、Linux中的“用户白名单”
  • 二、文件访问权限的修改
    • 2.1、权限的增加和减少的基础方法
    • 2.2、以八进制数修改权限
  • 三、用户身份的修改
    • 3.1、修改文件的拥有者
    • 3.2、修改文件的所属组
    • 3.3、文件的默认权限与权限掩码

一、Linux权限的概念

就像我们现实生活中的各种单位一样,不同的管理层有着不同的权限,管理的层级越高权限就越大。
就好比一个公司的老板自然就拥有最高权限,可以任意开除或录用某个人。在我们的Linux系统中也是有这样的层级分类的。
在Linux中的用户主要分为两类:超级管理员用户(root)和普通用户,但普通用户也可以细分为在“白名单”内的用户和不在“白名单”之内的用户。
超级管理员用户也就是root用户几乎不受任何权限用户,他可以执行任何指令,也可以不受任何权限限制的查看修改和删除任意文件即用户。

总结来说,Linux中的权限主要是针对各种用户的。

Linux中的权限分为三类:

r --可读权限
w --写(修改)权限
x --可执行权限

1.1、Linux中一切皆文件

想要很好的理解Linux中的权限管理,就要先来理解一个概念——Linux中一切皆文件
简单来说就是Linux中统一以文件的方式来管理各和访问种指令和设备。
反过来理解,就是任何东西只要在Linux操作系统中,不管它是不是文件,Linux都以文件的方式对它们进行管理和访问。
例如我们可以使用which指令和whereis指令来搜索各种指令:
在这里插入图片描述
我们最终会看显示了一堆目录和路径,也就是说Linux中是以文件的形式来存储这些指令的。

1.2、文件访问者的分类

Linux中的文件访问者分为三类:

文件的所有者:u(user)
文件的所有组用户:g(group)
其他人:o(other)

而Linux的文件权限主要就是针对这三中用户的。我们可以随便在一个目录下执行ll指令,就会发现每个文件的开头都跟着一长串的字符:
在这里插入图片描述
其中第一个字符表示的是文件类型,如果是d的话就是目录文件,如果是-的话就表示普通文件:
在这里插入图片描述
后面的这九个字符其实是要分成三组,每一组分别对应着上面的某个访问者所拥有的权限,其所对应的访问者如下:
在这里插入图片描述
如上图举例:该文件的拥有者对该文件有读写和执行权限,所属组有读和执行权限,其他人有读和执行的权限(‘-’ 就表示该用户没有对应的权限)。

1.3、、Linux中的“用户白名单”

Linux中有上千条指令,有些指令是什么用户都能执行的,但有些指令就只有root用户才能执行。
就例如安装软件或各种指令的指令:yum就只有root用户能执行。
那么普通用户就绝对不能执行yum只领了吗?
其实是可以的,我们可以使用sudo指令来对普通用户进行“提权”,这样就算是普通用户也能执行权限更大的指令了:
在这里插入图片描述
但是我们还会发现一个问题,就是当我们输完当前用户的密码之后会发现指令并没有被执行,而是给出了下面这条提示:
在这里插入图片描述
系统提示我们,当前用户并不在一个名为“sudoers”的文件中。

那这是怎么回事呢?

其实,虽然我们可以通过sudo来对我们的用户进行提权,但并不是所有的用户都可以被提权的。
想想如果每个普通用户都可以通过sudo来执行权限更高的指令,然后只需要输入自己的密码就能执行指令了,那Linux的权限设计岂不是有大bug?
所以普通用户想要提权成功就必须要经过root用户的同意,而同意的方式就是在sudoers文件中加入该普通用户的名字。
怎么操作呢,我们可以先打开这个文件,注意这个文件必须是root用户打开才是正确的。
该文件在root用户下的路径是 /etc/sudoers:
在这里插入图片描述

当我们打开这个文件之后,找到大于101行左右:
在这里插入图片描述

我们只需要像上图所示,将我们想要被提权的用户的名称加上去即可,然后在保存退出。
然后我们新加的这个用户就可以提权成功了:
在这里插入图片描述
这里我的系统,虽然已经安装了这条指令,但可以证明的是提权成功了。

二、文件访问权限的修改

2.1、权限的增加和减少的基础方法

如果我们想对某个文件的权限进行修改,我们可以使用chmod指令
chomd指令的具体用法是:

chomd u/g/o+r/w/x 文件名
chomd u/g/o-r/w/x 文件名

意思就是针对某种用户对某文件的权限加上或是减去某个权限。
例如我们想去掉“其他人(o)”对某一文件的“读”权限,我们就可以这样做:
在这里插入图片描述
而如果我们又向把读权限加回来就可以这样做:
在这里插入图片描述
而如果在chomd后面没有指明何种用户的话,那就是默认对所有类型用户都修改权限:
在这里插入图片描述

2.2、以八进制数修改权限

除了上面的基础修改方法,其实我们还有一种更“便捷”的修改权限的方式,那就是使用三位八进制数来对文件的权限统一修改。
举一个例子:
在这里插入图片描述
我们会发现当执行完“chmod 777 test.t”指令后所有用户对应的权限都被更改了。

其实想要理解这3个数组并不难,我们只需要将对应有权限的位置用1来表示没有权限的位置用0来表示,例如目前ExerciseDir的权限是:

rwx rwx r-x

我们用数字对应就变成了:

111 111 101

我们可以把每种用户对应的权限看做是一个三位的二进制数,然后再转化成八进制就变成了:

775

我们将test.t的权限也设置成775,就可以看到这两个文件的权限变得一样了:
在这里插入图片描述

但是这种方法看起来是比较简便的,但是如果不常进行二进制转8进制的话可能还是需要一段计算时间的。
所以如果是想要快速修改所有用户的权限的话可以考虑使用这种方法,但如果只是想修改单种用户的单个权限的话,我感觉还是使用基础方法会比较直观一点。

三、用户身份的修改

3.1、修改文件的拥有者

如果我们想要修改某个文件的拥有者,我们可以使用chown指令,该指令的使用方法如下:

chown 新拥有者 文件名

但是需要注意的是,修改文件的拥有者是需要root的权限的,所以我们得加上sudo指令。

例如我们可以对test.t修改以下拥有者:
在这里插入图片描述
我们就会发现test.t的拥有者由原来的Mr_Lin1变成了Mr_Lin2了。
上面的第一个用户名表示的是拥有者,第二个用户名表示的是所属组的组长,而除了所属组和拥有者以外的用户就都属于其他人,所以其他人也就没必要在显示出来。

3.2、修改文件的所属组

而修改文件的所属组我们可以使用chgrp指令,该指令的用法如下:

chgrp 新所属组 文件名

同样这条指令也是需要root权限的:
在这里插入图片描述

3.3、文件的默认权限与权限掩码

其实我们在新建一个普通文件或者目录的时候是有对应的默认权限的,普通文件的默认权限是666,目录的默认权限是777
但当我们真的创建一个文件和目录并查看其权限的时候却发现并不是这样:
在这里插入图片描述
我们会发现对应的权限分明是664和775。

新建一个文件的权限其实是默认权限减去该用户的权限掩码,也就是将权限掩码中有的权限减去。对于每个类型用户对应的三位二进制数来说其实计算的方法很简单,就是将权限掩码按位取反后再与默认权限按位与即可。

我们可以使用umask指令来查看权限掩码:
在这里插入图片描述
将权限掩码002转化成二进制为:000 000 010,按位取反后为:111 111 101,所以和普通文件的默认权限110 110 110 和目录文件的默认权限111 111 111 按位与后就得到了110 110 100和111 111 101,也就是664和775。

我们也可以使用**umask + “三位八进制数”**指令来修改权限掩码:
在这里插入图片描述

相关文章:

【Linux笔记】Linux基础权限

【Linux笔记】Linux基础权限 一、Linux权限的概念1.1、Linux中一切皆文件1.2、文件访问者的分类1.3、、Linux中的“用户白名单” 二、文件访问权限的修改2.1、权限的增加和减少的基础方法2.2、以八进制数修改权限 三、用户身份的修改3.1、修改文件的拥有者3.2、修改文件的所属组…...

汽车屏类产品(三):抬头显示Head-Up Display(HUD)

前言 你的下一台车,一定要考虑加装一个HUD。 汽车抬头显示器或汽车抬头显示器(也称为汽车HUD)是任何透明的显示器,它可以在汽车中显示数据,而不需要用户将视线从平时的视角移开。这个名字的由来源于飞行员能够在头部“向上”并向前看的情况下查看信息,而不是向下倾斜查…...

vue2技能树(1)

目录 Vue.js 是什么响应式数据绑定组件化开发简单的模板语法生态系统逐渐增强社区支持 安装、导入和使用 Vue.js步骤 1: 安装 Node.js步骤 2: 创建新项目或添加到现有项目创建新项目添加到现有项目 步骤 3: 导入 Vue.js步骤 4: 创建 Vue 实例步骤 5: 创建 HTML 模板步骤 6: 启动…...

Kotlin中的选择结构语句

在Kotlin中,选择结构语句有多种形式,包括条件分支、三元表达式、if-else if-else语句、when语句等。下面将逐个说明每种形式的使用。 条件分支: var max: Int 0 var a: Int 5 var b: Int 6if (a > b) {max a } else {max b }printl…...

【AIFEM案例操作】压力容器强度分析

AIFEM是由天洑自主研发的一款通用的智能结构仿真软件,助力用户解决固体结构相关的静力学、动力学、振动、热力学等实际工程问题,软件提供高效的前后处理工具和高精度的有限元求解器,帮助用户快速、深入地评估结构的力学性能,加速产…...

Hadoop3教程(十八):MapReduce之MapJoin案例分析

文章目录 (118)MapJoin案例需求分析ReduceJoin的问题如何解决ReduceJoin的问题如何将一个文件主动缓存到集群的内存里 (119)MapJoin案例代码实现参考文献 (118)MapJoin案例需求分析 ReduceJoin的问题 在R…...

SOAR安全事件编排自动化响应-安全运营实战

SOAR是最近几年安全市场上最火热的词汇之一。各个安全产商都先后推出了相应的产品,但大部分都用得不是很理想。SOAR不同与传统的安全设备,买来后实施部署就完事,SOAR是一个安全运营系统,是实现安全运营过程中人、工具、流程的有效…...

连锁药店的自有品牌之争:老百姓大药房能否突围?

文丨新熔财经 作者丨楷楷 近年来,随着医保谈判药品的“双通道”(即消费者可在有资质的药店买到新进医保的创新药),以及“门诊统筹”将药店纳入医保报销等医改政策出台,药企开始重新重视起零售药店渠道,很…...

智能台灯语音控制丨解放双手

台灯是日常生活中一种常见的照明产品。以往的台灯大多都是采取手动控制,通过按键去对台灯的亮度进行调整。随着科技的发展,台灯也开始走向了智能化。人们已经能够对智能台灯进行语音控制,通过调节灯光开关、色温、灯光亮度等操作,…...

网络库OKHTTP(2)面试题

序、慢慢来才是最快的方法。 背景 OkHttp 是一套处理 HTTP 网络请求的依赖库,由 Square 公司设计研发并开源,目前可以在 Java 和 Kotlin 中使用。对于 Android App 来说,OkHttp 现在几乎已经占据了所有的网络请求操作。 OKHttp源码官网 问1…...

探索Java NIO:究竟在哪些领域能大显身手?揭秘原理、应用场景与官方示例代码

一、NIO简介 Java NIO(New IO)是Java SE 1.4引入的一个新的IO API,它提供了比传统IO更高效、更灵活的IO操作。与传统IO相比,Java NIO的优势在于它支持非阻塞IO和选择器(Selector)等特性,能够更…...

论文阅读 Memory Enhanced Global-Local Aggregation for Video Object Detection

Memory Enhanced Global-Local Aggregation for Video Object Detection Abstract 人类如何识别视频中的物体?由于单一帧的质量低下,仅仅利用一帧图像内的信息可能很难让人们在这一帧中识别被遮挡的物体。我们认为人们识别视频中的物体有两个重要线索&…...

Java 常用类(包装类)

目录 八大Wrapper类包装类的分类 装箱和拆箱包装类和基本数据类型之间的转换常见面试题 包装类方法包装类型和String类型的相互转换包装类常用方法(以Integer类和Character类为例)Integer类和Character类的常用方法 Integer创建机制(面试题&a…...

ES|QL:Elasticsearch的 新一代查询语言

作者:李捷 “学会选择很难。学会正确选择更难。而在一个充满无限可能的世界里学会正确选择则更难,也许是太难了。” 巴里-施瓦茨(Barry Schwartz)在《选择的悖论--多就是少》(The Paradox of Choice -More is Less&…...

C语言实现句子中的单词颠倒排序

一、运行结果 二、源代码 # define _CRT_SECURE_NO_WARNINGS # include <stdio.h> # include <assert.h>//实现逆转函数&#xff1b; void reverse(char* left, char* right) {//断言left和right都不能为空&#xff1b;assert(left);assert(right);//循环逆转字母…...

MySQL学习(八)——锁

文章目录 1. 锁概述2. 全局锁2.1 全局锁的必要性2.2 语法2.3 全局锁的特点 3. 表级锁3.1 表锁3.2 元数据锁3.3 意向锁3.4 自增锁 4. 行级锁4.1 介绍4.2 记录锁4.3 间隙锁4.4 临键锁 1. 锁概述 锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中&#xff0c;除传…...

让iPhone用电脑的网络上网

让iPhone用电脑的网络上网&#xff0c;可以按照以下步骤操作&#xff1a; 在iPhone上找到并点击“设置”选项&#xff0c;进入“蜂窝移动网络”。打开“个人热点”选项。此时下方的弹出对话框会显示“仅USB”。用数据线将你的iPhone与电脑相连&#xff0c;并在电脑上打开“控制…...

ThreeJS-3D教学十-有宽度的line

webgl中线是没有宽度的&#xff0c;现实的应用中一般做法都是将线拓宽成面来绘制。默认threejs的线宽是无法调节的&#xff0c;需要用有厚度的线 THREE.Line2。 先看效果图&#xff1a; 看下代码&#xff1a; <!DOCTYPE html> <html lang"en"> <he…...

安装Elasticsearch步骤(包含遇到的问题及解决方案)

注&#xff1a;笔者是在centos云服务器环境下安装的Elasticsearch 目录 1.安装前准备 2.下载Elasticsearch 3.启动Elasticsearch 非常容易出问题 第一次运行时&#xff0c;可能出现如下错误&#xff1a; 一、内存不足原因启动失败 二、使用root用户启动问题 三、启动ES自…...

网络编程面试笔试真题

网络编程笔试面试真题 1、关于Linux系统中多线程的信号处理&#xff0c;说法中不正确的是&#xff1f; A&#xff1a;在线程环境霞&#xff0c;产生的信号是传递给整个进程的 B&#xff1a;一般情况下&#xff0c;信号会随机给进程的一个线程 C&#xff1a;对某个信号处理函数…...

MySQL官方文档如何查看,MySQL中文文档

这里写自定义目录标题 MySQL官方文档如何查看MySQL中文文档 MySQL官方文档如何查看 MySQL官网地址&#xff1a;https://dev.mysql.com/doc/ 比如这里我要找InnoDB架构 MySQL中文文档 MySQL 5.1中文文档地址&#xff1a;https://www.mysqlzh.com/...

第七章:最新版零基础学习 PYTHON 教程—Python 列表(第四节 -如何在 Python 中查找列表的长度)

列表是 Python 日常编程不可或缺的一部分,所有 Python 用户都必须学习,了解其实用程序和操作是必不可少的,而且总是有好处的。因此,本文讨论了找到第一个这样的实用程序。使用Python 的列表中的元素。 目录 在 Python 中查找列表的长度...

XPS虽没流行,但还在使用!在Windows 10中打开XPS文件的最佳方法

当Windows Vista发布时&#xff0c;微软推出了XPS格式&#xff0c;这是PDF的替代品。XPS文件格式并不是什么新鲜事&#xff0c;但从未获得过多大的吸引力。 因此&#xff0c;XPS&#xff08;XML Paper Specification&#xff09;文件是微软对Adobe PDF文件的竞争对手。尽管XPS…...

23 种设计模式详解(C#案例)

&#x1f680;设计模式简介 设计模式&#xff08;Design pattern&#xff09;代表了最佳的实践&#xff0c;通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时…...

@SpringBootApplication配置了scanBasePackages导致请求一直404,分析下原因

出现RequestMapping注解的Controller类可能是因为SpringBootApplication注解中配置了scanBasePackages导致的请求一直返回404错误。 SpringBootApplication注解是Spring Boot的核心注解之一&#xff0c;它用于启动Spring Boot应用程序。这个注解实际上是一个组合注解&#xff…...

{大厂漏洞 } OA产品存在SQL注入

0x01 漏洞介绍 江苏叁拾叁-OA是由江苏叁拾叁信息技术有限公司开发的一款OA办公平台&#xff0c;主要有知识管理&#xff0c;工作流程&#xff0c;沟通交流&#xff0c;辅助办公&#xff0c;集成解决方案&#xff0c;应用支撑平台&#xff0c;基础支撑等功能。 该系统也与江苏叁…...

6-8 舞伴问题 分数 15

void DancePartner(DataType dancer[], int num) {LinkQueue maleQueue SetNullQueue_Link();LinkQueue femaleQueue SetNullQueue_Link();// 将男士和女士的信息分别加入对应的队列for (int i 0; i < num; i) {if (dancer[i].sex M){EnQueue_link(maleQueue, dancer[i]…...

samba服务器的功能是什么

Samba服务器是一个开源的网络文件共享服务&#xff0c;其主要功能是在不同操作系统之间实现文件和打印机共享。它最常用于将Linux/Unix系统与Windows系统互联&#xff0c;但也支持其他操作系统。 以下是Samba服务器的主要功能&#xff1a; 文件共享&#xff1a;Samba允许用户在…...

MSQL系列(五) Mysql实战-索引最左侧匹配原则分析及实战

Mysql实战-索引最左侧匹配原则分析及实战 前面我们讲解了索引的存储结构&#xff0c;BTree的索引结构&#xff0c;以及索引最左侧匹配原则&#xff0c;Explain的用法&#xff0c;今天我们来实战一下 最左侧匹配原则 1.联合索引最左侧匹配原则 联合索引有一个最左侧匹配原则 …...

react|redux状态管理

react|redux状态管理 参考官网&#xff1a;https://cn.redux-toolkit.js.org/tutorials/quick-start 状态管理使用流程 1、安装&#xff1a; npm install react-redux reduxjs/toolkit2、创建store.js 通过configureStore的hook对reducer&#xff08;或slice&#xff09;进行…...

大连网建科技/北京seo关键词优化外包

1 将生成的xxx.dll xx.lib 复制到当前项目的debug文件夹下2 在“工具”-"选项"-"项目和解决方案"-"VC目录" 下 添加当前项目的debug文件夹的目录地址 ".../.../debug”3 在"项目"->"项目属性"->"配置属性&q…...

太原市网站制作公司/网络推广的主要工作内容

下列软件包有未满足的依赖关系&#xff1a;sogoupinyin : 依赖: fcitx (> 1:4.2.8.3-3~) 但是它还没有被安装依赖: fcitx-frontend-gtk2 但是它还没有被安装依赖: fcitx-frontend-gtk3 但是它还没有被安装依赖: fcitx-frontend-qt4 但是它还没有被安装依赖: libfcitx-qt0 但…...

wordpress主题 导出/搜索引擎在线

文章转自&#xff1a;bboyHan &#xff08;文末有彩蛋&#xff09; Go 是一个开源的编程语言&#xff0c;它能让构造简单、可靠且高效的软件变得容易。 Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发&#xff0c;后来还加入了Ian Lance Taylor, Russ Cox…...

asp net做网站视频/网站开发流程是什么

Zookeeper 集群安装与常用命令使用 JDK下载点击打开链接 Zookeeper 下载 点击打开链接 在三台机器上安装JDK 1. 在linux 上新建一个目录存放 JDK和zookeeper mkdir /usr/local/software 上传JDK和zookeeper 2. 新建一个java 目录 mkdir /usr/local/java cd /usr/local/s…...

服装网站建设论文/值得收藏的五个搜索引擎

最近在做项目时顺便画了一块Altera 的USB BLASTER板子&#xff0c;回来后到处找拆机元器件&#xff0c;呵呵&#xff0c;功夫不负有心人&#xff0c;终于可以用了&#xff0c;JTAG方式试过了&#xff0c;AS方式也试过了&#xff0c;signal TAP也可以用呵呵&#xff0c;似乎比我…...

界首做网站/合肥做网站推广

题图摄于北京奥林匹克塔本文根据徐天行的英文博客改写&#xff0c;感谢 Harbor 项目 maintainer 王岩提供中文界面截图&#xff0c; Cao Zhenhui 提供翻译帮助。Harbor 1.9 版正式发布了&#xff01;新版本彰显开源社区通力合作的成果&#xff0c;来自奇虎360、网易云、VMware、…...