【Linux】权限管理

在这里插入图片描述
🔥博客主页 小羊失眠啦.
🎥系列专栏《C语言》 《数据结构》 《C++》 《Linux》 《Cpolar》
❤️感谢大家点赞👍收藏⭐评论✍️


在这里插入图片描述

文章目录

  • 一 、Linux中的用户
    • 1.1 Linux用户分类
    • 1.2 用户转换
    • 1.3 指令提权
  • 二、Linux权限管理
    • 2.1 权限的概念
    • 2.2 Linux中的角色
    • 2.3 文件权限
    • 2.4 权限修改
      • 2.4.1 chmod
      • 2.4.2 chown
      • 2.4.3 chgrp
    • 2.5 目录权限
    • 2.6 粘滞位

一 、Linux中的用户

1.1 Linux用户分类

Linux下有两种用户:超级用户(root)、普通用户

  • 超级用户:可以再linux系统下做任何事情,不受限制
  • 普通用户:在linux下做有限的事情
  • 超级用户的命令提示符是“#”,普通用户的命令提示符是“$”

1.2 用户转换

命令:su [用户名]

功能:切换用户

用户切换可分为:

  • 普通用户切换成超级用户
  • 超级用户切换成普通用户
  • 普通用户A切换成普通用户B
  • 普通用户切换成超级用户

在这里插入图片描述

如上图,当前我是一个普通用户,用户名是xiaoyang,此时想要切换成超级用户,直接输入su指令然后点击回车,提示我们要输入密码,这里输入root用户的密码,输入正确的密码后就可以成功地切换成root用户。

在这里插入图片描述

注意:上述操作仅仅只是对用户身份进行了切换,不改变当前所处路径,如上图,身份切换前后都处在xiaoyang用户的家目录。此时如果想切回xiaoyang用户,只需要输入 exit 或者 Ctrl+d

从一个普通用户切换成超级用户,除了上面的su指令外,还可以用su -指令。它们的区别是:前者仅是对身份的切换,不改变当前所处路径,而后者则是以重新登录的方式切换成超级用户,此时不仅完成了身份切换,并且当前所处的路径也变成了root用户的家目录。

在这里插入图片描述

  • 超级用户切换成普通用户

在这里插入图片描述

在root身份下,直接输入su [用户名]指令,就可以随意切换成任意一个普通用户,无需输入任何密码。切换后路径不变。

  • 普通用户A切换成普通用户B

在这里插入图片描述

从普通用户A切换的普通用户B需要输入B用户的密码

1.3 指令提权

当我们不想把自己变成root用户,但我们还想让普通用户以root的权限,执行一条命令,我们可以使用sudo指令,对后面跟的指令进行提权,以超级用户的身份去执行该条指令。

在这里插入图片描述

我们只要输入自己的密码,就可以以超级用户的身份去执行该条指令,但前提是我们用户的用户名在sudoers的配置文件中,这样才允许用户执行sudo。想要添加进白名单,也要通过root用户进行操作。

二、Linux权限管理

2.1 权限的概念

在计算机中,权限管理一般指根据系统设置的安全规则或者安全策略,用户可以访问而且只能访问自己被授权的资源。权限是限制人的,而且对应的操作对象,要有满足人的需求的属性。例如:张三可以在爱奇艺看付费电影,是因为他是VIP,而不是因为他是张三,而且我们也不可以在爱奇艺上做题。所以:

  • 权限认证的是身份(角色)
  • 权限也和属性有关

在Linux环境中,我们所有的操作都是针对文件进行的,因此我们要先知道文件具备哪些属性,我们可以对文件做些什么。

2.2 Linux中的角色

前面提到,权限和身份(角色)有关,Linux中分以下三种角色:

  • 拥有者(文件的创建人)
  • 所属组(为了实现组内协同)
  • 其他人

在这里插入图片描述

如上图,红色框起来的就表示当前文件的拥有者,橙色框起来的就表示当前文件的所属组其他人并没有直接出现在上图所展现的信息中,当一个用户操作一个文件的时候,该文件会先看该用户是不是我的拥有者,若不是,再看该用户是不是我的所属组,若都不是,那他就是其他人。

2.3 文件权限

我们可以通过ls - l指令,查看当前目录下所有文件的属性

在这里插入图片描述

如上图,其中紫色框起来字符表示文件类型,后面的九个字符,三三一组,依次为:文件拥有者的权限、文件所属组的权限、其他人的权限。其中r,w,x都代表文件属性

📖文件类型

Linux系统中,文件名后缀没有直接意义,系统不通过后缀来区分文件类型,而是通过字符来区分文件类型。但是在Linux系统上运行的软件会通过后缀来区分文件类型。Linux系统中主要有以下几种文件类型:

  • d :文件夹(文本文件、源代码、可执行程序、库)
  • -:普通文件
  • l :软链接(类似Windows的快捷方式)
  • b :块设备文件(例如硬盘、光驱等)
  • p :管道文件(用来进行通信)
  • c :字符设备文件(例如屏幕等串口设备)
  • s :套接口文件

📖基本权限

Linux系统中主要有以下几种文件属性:

  • r :读权限,对于普通文件而言,具有读取文件内容的权限;对目录文件来说,具有浏览目录信息的权限。

  • w:写权限,对于普通文件而言,具有修改文件内容的权限;对目录文件来说,具有删除、移动目录文件的权限。

  • x :可执行权限,对于普通文件而言,具有执行文件的权限;对目录文件来说,具有进入目录的权限。

  • -:表示不具备该权限。

注意:每组权限都是由三个字符组成,这三个位置所表示的含义是确定的,即第一个位置只能表示是否有读权限;第二个位置表示是否有写权限;第三个位置表示是否有可执行权限。

在这里插入图片描述

如图:xiaoyang用户也是所属组,也具有写的权限,可是为什么无法执行呢?

这是因为一次只能匹配一个角色,当xiaoyang用户执行命令时,系统匹配到xiaoyangtest.txt文件的拥有者,而拥有者不具备写权限,所以xiaoyang用户无法写入。

2.4 权限修改

只有文件的拥有者和超级用户才可以修改权限。

2.4.1 chmod

语法:chmod [参数] 权限 文件名

功能:设置文件的访问权限

常用选项:

  • R :递归修改目录文件的权限

方法一:用户表示符、+ - =、权限字符

  • +:向权限范围增加权限代号所表示的权限
  • -:向权限范围取消权限代号所表示的权限
  • = :向权限范围赋予权限代号所表示的权限
  • u :拥有者
  • g :所属组
  • o :其他人
  • a :所有用户(拥有者、所属组、其他人)

示例

  • chmod u+x test.txt:表示给拥有者添加test.txt文件的执行权限。
    在这里插入图片描述

  • chmod a-rwx test.txt:表示取消所有用户对test.txt文件的读、写、可执行权限。

方法二:三位8进制数字

对于一组权限中的三个权限位,可以用1表示具备该权限,用0表示不具备该权限。例如:111表示当前角色拥有读、写、可执行权限。这三个2进制数字又可以用一个8进制数字来表示,111对应的8进制是7。这样每种角色的权限可以用一个8进制数字表示,那三个角色的权限就可以用三个8进制数字来表示。
示例

  • chmod 777 test.txt:表示给所有用户设置对于test.txt文件的所有权限。

2.4.2 chown

语法:chown [参数] 用户名 文件名

功能:修改文件的拥有者

我们将一个东西交给别人,是需要别人同意的,修改文件的拥有者也是同样的道理,这里我们就要借用root强制修改。

在这里插入图片描述

示例:

  • chown shimian test.txt:表示把test.txt文件的拥有者改成shimian

2.4.3 chgrp

语法:chgrp [参数] 用户组名 文件名

功能:修改文件或目录的所属组

常用选项:

  • -R:递归修改文件或目录的所属组

示例:

  • chgrp shimian test.txt:表示把test.txt文件的所属组改成shimian
  • chown xiaoyang:shimian test.txt:表示把test.txt文件的拥有者改成xiaoyang,把所属组改成shimian

在这里插入图片描述

2.5 目录权限

  • 可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容

    在这里插入图片描述

  • 可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件

在这里插入图片描述

  • 可执行权限:如果目录没有可执行权限,则用户无法进入对应的目录

在这里插入图片描述

2.6 粘滞位

我们创建一个用户,用户家目录的权限是700,其他用户无法进入我的家目录,也不能查看我的家目录下的文件,更不能对我的家目录中的文件进行修改、删除,也不能在我的家目录中创建文件。

在这里插入图片描述

但有的时候,我们多个用户想进行文件数据的共享。由于家目录的特性,导致我们所建立的共享目录在用户的家目录下无法实现。那建立在哪里合适呢?Linux提供了tmp目录,在这个目录下就可以实现多个用户想进行文件数据的共享。

在这里插入图片描述

我们可以看到tmp目录的最后一个权限是t,而不是x。那它有怎样的意义呢?因为其他人有w权限,所以在tmp目录中创建的文件可以随便删除。所以给other新增了一个权限t,为粘滞位。它具有x的意义,还会对目录权限进行特殊的设定,该目录里的文件,只有root或文件的拥有者可以删除。

粘滞位总结:

  • 给目录设置,一般是共享目录
  • 只允许文件的拥有者或者root能删除这个文件,其他用户一概不允许
  • t是一种特殊的x权限

在这里插入图片描述

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

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

相关文章

企业网络采用SD-WAN的优势

近年来,SD-WAN成为企业网络领域的一项热门技术,为传统网络带来了新的变革。SD-WAN(Software Defined Wide Area Network,软件定义广域网)以其灵活性、可管理性和低成本而备受青睐。它不仅能够创建成熟的专用网络&#…

MySQL 教程 2.3

MySQL DELETE 语句 你可以使用 DELETE FROM 命令来删除 MySQL 数据表中的记录。 你可以在 mysql> 命令提示符或 PHP 脚本中执行该命令。 语法 以下是 DELETE 语句从 MySQL 数据表中删除数据的通用语法: DELETE FROM table_name WHERE condition; 参数说明&…

IP风险画像在企业网络安全中应用

随着企业数字化的不断深入,网络安全问题日益突显。IP风险画像作为一种综合性的网络安全工具,为企业提供了更全面的风险评估和防范手段。本文将结合一个实际案例,深入探讨IP风险画像在企业网络安全中的成功应用。 案例背景 一家大型金融机构…

IP数据云识别真实IP与虚假流量案例

随着互联网的普及,企业在数字领域面临着越来越复杂的网络威胁。为了保护网站免受虚假流量和恶意攻击的影响,许多企业正在采用IP数据云。本文将结合一个真实案例,深入探讨IP数据云如何成功准确地识别真实用户IP和虚假流量IP,提高网…

Oracle 面试题 | 09.精选Oracle高频面试题

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

vue3 之 组合式API—reactive和ref函数

ref&#xff08;&#xff09; 作用&#xff1a;接收简单类型或者对象类型的数据传入并返回一个响应式的对象 核心步骤&#xff1a; 1️⃣ 从 vue 包中导入 ref 函数 2️⃣在 <script setup>// 导入import { ref } from vue// 执行函数 传入参数 变量接收const count …

【Python】【完整代码】解析Excel 文件中的内容并检查是否包含某字符串,并返回判断结果

示例&#xff1a; 开发需求&#xff1a;解析Excel 文件中的内容并检查是否包含 "Fail" 字符&#xff0c;若没有则返回True&#xff0c;若有则返回False 实现代码&#xff1a; #!/usr/bin/env python3 # -*- encoding: utf-8 -*-File : check_excel_for_fail.py Ti…

vue介绍和使用

一、vue介绍 vue官网说&#xff1a;Vue.js&#xff08;读音 /vjuː/&#xff0c;类似于 view&#xff09; 是一套构建用户界面的渐进式的JavaScript框架。与其他重量级框架不同的是&#xff0c;Vue 采用自底向上增量开发的设计。 1、渐进式的JavaScript框架 复制代码 Angular…

OJ_找位置

题干 代码 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<vector> #include<algorithm> #include<map> using namespace std;int main() {char str[200] { 0 };scanf("%s", str);map<char, vector<int>> times…

openlayers加载天地图

申请天地图key 官方&#xff1a;https://www.tianditu.gov.cn/ 申请key&#xff1a;https://sso.tianditu.gov.cn/login?servicehttps%3A%2F%2Fconsole.tianditu.gov.cn%2F 进去之后&#xff0c;先登录&#xff0c;如果没账号先注册一个就行。 可以创建个应用&#xff0c;…

如何将图片提取文字转换成文字?3个方法帮你转换

如何将图片提取文字转换成文字&#xff1f;在日常生活中&#xff0c;将图片中的文字转换成可编辑的文本可以带来很多便利。例如&#xff0c;我们可以使用OCR技术将书籍或报纸上的文章转换成电子文本&#xff0c;方便阅读和编辑。此外&#xff0c;将名片、菜单、广告等物品上的文…

政安晨的AI笔记——Bard大模型最新提示词创作绘画分析

AI大模型进入商业应用元年后的第一年&#xff0c;顶级模型大混战终于开始了。 Bard在追赶OpenAI的过程中&#xff0c;还是补上了画图的短板。 &#xff08;相比于视频的5阶张量处理而言&#xff0c;图画做为4阶张量处理虽然不新鲜&#xff0c;但却是跨不过去的基础条件&#…

LLM(5) | Encoder 和 Decoder 架构

LLM(5) | Encoder 和 Decoder 架构 文章目录 LLM(5) | Encoder 和 Decoder 架构0. 目的1. 概要2. encoder 和 decoder 风格的 transformer (Encoder- And Decoder-Style Transformers)原始的 transformer (The original transformer)编码器 (Encoders)解码器 (Decoders)编码器和…

【退役之重学前端】vite, vue3, vue-router, vuex, ES6学习日记

学习使用vitevue3的所遇问题总结&#xff08;2024年2月1日&#xff09; 组件中使用<script>标签忘记加 setup 这会导致Navbar 没有暴露出来&#xff0c;导致使用不了&#xff0c;出现以下报错 这是因为&#xff0c;如果不用setup&#xff0c;就得使用 export default…

一种缩短轮询时间的处理办法

我们平常处理轮询任务的时候&#xff0c;会用时间片的方式来分割开&#xff0c;每个时间片处理某一个任务。 有时候有些任务并不需要有动作&#xff0c;本轮轮询到它&#xff0c;它不需要干活&#xff0c;于是这个时间片就浪费了。但如果其他时间片里面的任务又急着呢&#xff…

新版本nginx安装提示需要openssl的问题

新版本的nginx安装的时候未发现openssl的路径&#xff0c;有两种方式解决 方式一&#xff1a; 找到本地nginx的解压目录中 &#xff0c;例如我的放到root下面了。 进入 /root/nginx1.24.0/auto/lib/openssl/conf 目录下修改内容 &#xff0c;这两行都需要修改&#xff0c;…

SpringFramework实战指南(五)

SpringFramework实战指南(五) 4.3 基于 注解 方式管理 Bean4.3.1 实验一: Bean注解标记和扫描 (IoC)4.3.2 实验二: 组件(Bean)作用域和周期方法注解4.3.3 实验三: Bean属性赋值:引用类型自动装配 (DI)4.3.4 实验四: Bean属性赋值:基本类型属性赋值 (DI)4.3.5 实验五:…

为什么需要数字企业展厅?数字企业展厅搭建要注意什么?

引言&#xff1a; 数字企业展厅是一种通过数字技术来展示企业形象和产品的创新方式。它将传统的展厅搬到了虚拟的网络空间中&#xff0c;为企业带来了许多独特的优势。那么&#xff0c;为什么企业需要数字展厅呢&#xff1f;搭建数字企业展厅要注意什么&#xff1f; 一&#…

创建一个Vue项目(含npm install卡住不动的解决)

目录 1 安装Node.js 2 使用命令提示符窗口创建Vue 2.1 打开命令提示符窗口 2.2 初始Vue项目 2.2.1 npm init vuelatest 2.2.2 npm install 3 运行Vue项目 3.1 命令提示符窗口 3.2 VSCode运行项目 1 安装Node.js 可以看我的这篇文章《Node.js的安装》 2 使用命令提示…

QT中,对于大小端UDP网络发送的demo,帧头帧尾

简单demo: 发送端&#xff1a; #include <QUdpSocket> #include <QtEndian>#pragma pack(1) struct Test {unsigned char t1:1;unsigned char t2:2;unsigned char t3:3;unsigned char t4:2;quint8 a 1;quint16 b 2;quint16 c 3;//double b …