【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 + “三位八进制数”**指令来修改权限掩码:
在这里插入图片描述

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

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

相关文章

【VSCode】Windows环境下,VSCode 搭建 cmake 编译环境(通过配置文件配置)

除了之前的使用 VSCode 插件来编译工程外,我们也可以使用配置文件来编译cmake工程,主要依赖 launch.json 和 tasks.json 文件。 目录 一、下载编译器 1、下载 Windows GCC 2、选择编译器路径 二、配置 debug 环境 1、配置 lauch.json 文件 2、配置…

10.17课上(七段显示器,递归异或与电路)

异或的递归与数电实现 用二选一选择器实现异或函数 在异或当中,如果有一项为0,就可以把那一项消掉;如果有一项为1,就是把剩下的所有项运算完的结果取反 (由此在算法当中可以采用递归解决) 当w1为0时&…

百度文心一言 4.0 :如何申请百度文心一言 4.0

本心、输入输出、结果 文章目录 百度文心一言 4.0 :如何申请百度文心一言 4.0前言文心一言 4.0 ERNIE-Bot 4.0 :ERNIE-Bot 4.0 大模型深度测试体验报告如何申请千帆大模型试用百度文心一言 4.0 主要功能介绍配套发布的十余款AI原生应用插件、API 生态 百…

Python办公自动化完全指南(免费PDF)

Python办公自动化可以显著提速办公流程。通过自动执行那些重复繁琐又耗时的任务,大家可以把更多时间用在策略性和有创造性的工作上。 为了帮助大家更好地掌握如何将Python应用于办公自动化,我们整理了100个基本概念,让学习变得更轻松。 学习内…

C++项目实战——基于多设计模式下的同步异步日志系统-⑩-异步缓冲区类与异步工作器类设计

文章目录 专栏导读异步缓冲区设计思想异步缓冲区类设计异步工作器类设计异步日志器设计异步缓冲区类整理异步工作器类整理 专栏导读 🌸作者简介:花想云 ,在读本科生一枚,C/C领域新星创作者,新星计划导师,阿…

[java进阶]——IO流,递归实现多级文件拷贝

🌈键盘敲烂,年薪30万🌈 目录 一、认识IO流 二、了解编码与解码 二、IO流体系 三、字节输入输出流 四、字符输入输出流 五、多级文件拷贝 一、认识IO流 IO流也叫输入流(intput)、输出流(onput),该流就像java程序同硬盘之间的…

第0章:怎么入手tensorflow

近年来人工智能的火爆吸引了很多人,网上相关的热门课程报名的人很多,但是坚持下去的人却少。那些晦涩的原理没有一定知识的积累很难能理解。 如果你对人工智能感兴趣,且想利用人工智能去实现某项功能,而不是对人工智能本身感兴趣&…

Linux性能优化--性能工具:磁盘I/O

6.0 概述 本章介绍的性能工具能帮助你评估磁盘I/O子系统的使用情况。这些工具可以展示哪些磁盘或分区已被使用,每个磁盘处理了多少I/O,发给这些磁盘的I/O请求要等多久才被处理。 阅读本章后,你将能够: 确定系统内磁盘I/O的总量和类型(读/写…

【网络安全 --- xss-labs通关】xss-labs靶场通关,让你巩固对xss漏洞的理解及绕过技巧和方法(提供资源)

一,资源下载准备 1-1 VMware 16.0 安装请参考以下博客,若已经安装请忽略: 【网络安全 --- 工具安装】VMware 16.0 详细安装过程(提供资源)-CSDN博客【网络安全 --- 工具安装】VMware 16.0 详细安装过程(…

序列化和反序列化指令在PLC通信上的应用

在了解本篇博客之前,大家可以熟悉下序列化指令的相关介绍,详细内容如下: 博途PLC 1200/1500 PLC 序列化和反序列化指令编程应用_博图序列化和反序列化-CSDN博客序列化最重要的作用:在传递和保存对象时.保证对象的完整性和可传递性…

【API篇】四、Flink物理分区算子API

文章目录 1、 分区算子:随机分区2、分区算子:轮询分区3、分区算子:重缩放分区4、分区算子:广播5、分区算子:全局分区6、自定义分区 重分区,即数据"洗牌",将数据分配到下游算子的并行子…

Apache Shiro 组件反序列化漏洞分析

概述 Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。 它的原理比较简单:为了让浏览器或服务器重启后用户不丢失…

嵌入式实时操作系统的设计与开发 (中断管理)

中断发生及响应 硬件抽象HAL层响应 中断请求IRQ被中断控制器汇集成中断向量(Interrupt Vector),每个中断向量对应一个中断服务程序ISR,中断向量存放了ISRs的入口地址或ISRs的第一条指令。 系统中通常包含多个中断向量&#xff0…

Linux-ssh

文章目录 远程登录服务器配置远程服务器相关信息创建config文件配置config文件 配置密钥登陆先创建密钥配置密钥文件 执行命令scp传文件copy文件copy文件夹配置我们的vim和tmux 远程登录服务器 ssh userhostnameuser:用户名hostname:IP地址或域名 第一次登陆会显示…

Linux权限基础知识

前言:作者也是初学Linux,可能总结的还不是很到位 Linux修炼功法:初阶功法 ♈️今日夜电波:修炼爱情 —林俊杰 0:30━━━━━━️💟──────── 4:47 …

MySQL——七、MySQL备份恢复

MySQL 一、MySQL日志管理1、MySQL日志类型2、错误日志3、通用查询日志4、慢查询日志5、二进制日志5.1 开启日志5.2 二进制日志的管理5.3 日志查看5.4 二进制日志还原数据 二、MySQL备份1、备份类型逻辑备份优缺点 2、备份内容3、备份工具3.1 MySQL自带的备份工具3.2 文件系统备…

大模型,重构自动驾驶

文|刘俊宏 编|王一粟 大模型如何重构自动驾驶?答案已经逐渐露出水面。 “在大数据、大模型为特征,以数据驱动为开发模式的自动驾驶3.0时代,自动驾驶大模型将在车端、云端上实现一个统一的端到端的平台管理。”毫末智…

【CesiumforUnreal插件】UE5 快速构建Cesium场景 快速入门!!!

目录 0 引言1 快速入门1.1 准备1.2 安装Cesium for Unreal插件并创建一个项目1.3 准备关卡并添加地形和纹理1.4 添加3D建筑到场景中1.5 探索场景 🙋‍♂️ 作者:海码007📜 专栏:CesiumforUnreal专栏💥 标题&#xff1a…

如何转换Corona和Vray材质?cr材质转vr材质的方法

cr材质转vr材质的方法一:使用CG Magic插件,一键转换 CG Magic是一款基于3ds Max深度开发的智能化辅助插件,上千项实用功能,降低渲染时长,节省时间和精力,大幅简化工作流程,助力高效完成创作。 …

【Tomcat】为Tomcat服务配置本地Apr库以提升性能

关于 apr 和 apr-util 对 Tomcat 服务的性能提升的说明: 要测APR给tomcat带来的好处最好的方法是在慢速网络上(模拟Internet),将Tomcat线程数开到300以上的水平,然后模拟一大堆并发请求。如果不配APR,基本…