【Linux】一文带你掌握Linux权限!

news2024/11/26 9:47:53

Linux权限

  • 问题一:Linux下的用户分类有哪些?
  • 问题二:什么叫做权限?
  • 问题三:见一见没有权限是什么现象(看看就好了)
  • 问题四:权限的修改问题。
    • chmod
    • chown
    • chgrp
  • 问题五:其他问题(三个小问题)
    • 文件的初始权限
    • 目录权限
    • 粘滞位
  • 🍀小结🍀

🎉博客主页:小智_x0___0x_

🎉欢迎关注:👍点赞🙌收藏✍️留言

🎉系列专栏:Linux入门到精通

🎉代码仓库:小智的代码仓库

本篇将由五个问题来为大家讲解Linux权限方面的内容

问题一:Linux下的用户分类有哪些?

宏观方面我们可以将Linux中的用户分为两类:

  • root:超级用户;当然我们windows操作系统也有root用户,比如我们打开某一个应用程序的时候使用管理员方式打开,就是Windows中的root。
  • 普通用户:我们新建的用户,adduser

他们之间的差别主要是:

  • root用户基本不受权限的约束
  • 普通用户是授权限限制的

这两个用户之间是可以相互切换的,那么应该如何切换呢?

Linux中的所有用户,都需要有密码,无论是root还是其他,即便是多个普通用户,也都要设置密码

我们在普通用户情况下可以使用su或者su -来切换为root用户:
eg:whoami查看当前用户使用su进行切换>
在这里插入图片描述
这里提示我们需要输入密码(这里的密码是root账户的密码!)
输入验证完成之后我们可以看到目前是已经切换为root账户了>
在这里插入图片描述
那我们要退出root账户我们可以使用exit指令或者ctrl+d退出root用户>
在这里插入图片描述
使用su-切换的时候是直接使用root账号进行登录,他会直接到root账户的家目录中>
在这里插入图片描述
当然也可以使用exit或者ctrl+d进行退出。
root用户也可以切换普通用户 直接su 用户名切换:
在这里插入图片描述
我们可以看到root切换到普通用户是不需要输入密码的。(我是root,我就是这么嚣张,我想变成谁就变成谁
想退回root账户使用ctrl+d退回。
当我们想要对一个一条指令进行短暂的提权的时候可以使用sudo +指令>
在这里插入图片描述
这里提示我们输入账户(csdnyyds)的密码>我们输入密码回车之后就会看到这条指令的权限已经是root了>
在这里插入图片描述
因为每个系统不一样,一般来说对于一条指令进行提权之后的十几分钟内是不需要输入密码的>
在这里插入图片描述
【注意】:
我们使用adduser新建的用户,没有办法执行sudo,系统不信任你,除非将普通用户,添加到信任的白名单中。

把用户添加到信任白名单的方法>

  1. 使用root账号输入nano /etc/sudoers指令,进入编辑器后按↓进行下翻找到这个部分
    在这里插入图片描述
  2. 将我们的csdnyyds账户类似于root格式一样加在下面>
    在这里插入图片描述
  3. 最后按下ctrl+x退出->按y保存->回车退出

这样我们就把csdnyyds用户添加到系统的信任白名单中了。

问题二:什么叫做权限?

假如我是一名普通的腾讯视频用户,我们就没有权限观看vip电影,当我们成为腾讯视频vip用户就可以观看vip电影。
说白了权限就一句话:“一件事情是否允许被你做”这就是权限。

  1. 权限认证的是身份 (权限和“人”有关)
  2. 权限也和事物的“属性”有关。

文件的属性:可读、可写、可执行。
我们创建一个test.txt文件来观察一下他的属性.
在这里插入图片描述
Linux中如何看待后缀:看用户需求。
我们再来看文件类型后面的代表什么意思:
在这里插入图片描述
通过上面我们可以看到有拥有者、所属组、为什么没有其他人(other)呢?
Linux判断是否具有查看权限可以这样理解>

if(访问者==拥有者)
{
	//拥有者 >可以访问
}
else if(访问者==所属组)
{
	//所属组 >可以访问
}
else
{
	//other >不能访问
}

先判断是否为拥有者,如果不是再判断是否为所属组,如果还不是那么就是other了。
在这里插入图片描述
比如上面的test.txt文件来说:
对于拥有者可写、可读、不可执行;
对于所属组可读、可写、不可知性;
对于other可读、不可写、不可执行;
注:对于root用户来说不受任何权限限制

问题三:见一见没有权限是什么现象(看看就好了)

在这里插入图片描述
但是使用root账户可以对该文件随意访问(我是root,我就是这么嚣张,我想查看那个文件就查看那个文件,想修改用户中的那个文件就改那个文件):
在这里插入图片描述

问题四:权限的修改问题。

一般来讲可以更改权限的有两种人:拥有者、root。

chmod

**功能:**设置文件的访问权限
【语法】:chmod [参数] 权限 文件名
常用选项:

R -> 递归修改目录文件的权限
说明:只有文件的拥有者和root才可以改变文件的权限

chmod
① 用户表示符+/-=权限字符

+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限 用户符号:
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户

在这里插入图片描述
我们也可以把rwx转为八进制数比如rwx可以转换为111、r-x可以转换为101。
在这里插入图片描述
我们再来通过八进制数来对文件的权限进行修改>
在这里插入图片描述
注:两种权限的设置方法掌握一种即可

chown

功能: 修改文件的拥有者
【语法】: chown [参数] 用户名 文件名
在这里插入图片描述
这里发现我们无法修改:
原因:我们把一个文件给一个人必须要征求对方的意见。
那么有两种解决方法:

  1. 给指令进行短暂的提权
  2. 使用root账户进行修改
    在这里插入图片描述
    我们可以发现对指令进行短暂提权之后就可以进行直接修改。
    我们再来使用root账号进行修改>
    在这里插入图片描述

chgrp

功能: 修改文件或目录的所属组
【语法】: chgrp [参数] 用户组名 文件名
常用选项:

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

注:这里跟chown一样需要提权或者使用root账号操作
eg:使用提权进行修改>
在这里插入图片描述
eg:使用root账号进行修改>
在这里插入图片描述
当然我们也可以直接使用chown直接设置拥有者和所属组>

在这里插入图片描述

问题五:其他问题(三个小问题)

文件的初始权限

我们创建两个普通文件和两个目录>
在这里插入图片描述
这时候我们会有疑问>

  1. 为什么我们创建文件的默认权限是我们所看到的样子?
  2. 为什么普通文件:664
  3. 为什么目录文件:775

默认给普通文件的起始权限是666
默认给目录文件的起始权限是777

那为什么创建出来的不是666 和777呢?
这是因为我们存在umask(权限掩码)
https://img-blog.csdnimg.cn/bd0f20a4f3c64befb5ec6e6e3a38d0b9.png
当然umask是可以修改的>
在这里插入图片描述
可以看到当我们把umask改成000之后在创建新的文件他的起始权限就变成了666.
当我们想让创建的文件目录都不具备读和执行 我们可以把umask改为555(101 101 101)>
在这里插入图片描述

可以看到我们创建出来的文件目录都没有读和执行的功能。

目录权限

目录的读、写、执行权限又代表的什么呢?
我们将目录的权限改为331>
在这里插入图片描述

可以发现我们把他的读权限关掉之后我们就无法去查看目录中的文件。
在这里插入图片描述
在root权限下查看到我们的test1.c文件是被创建了。
现在我们再来去掉写的权限>
在这里插入图片描述
此时我们也无法创建文件了。
我们再来去掉可执行权限>
在这里插入图片描述
这时候我们发现我们已经无法进入dir1目录
我们再恢复dir1目录的读写权限关掉可执行权限>
在这里插入图片描述
可以看到我们虽然进不去,但是我们却可以查看里面的内容。
这个就好比上课迟到了,老师不让进教室,我们可以在窗外看到里面,虽然进不去但可以看到里面。
小结一下:
r:是否允许我们查看指定目录下的文件内容
w:是否允许我们在当前目录下创建、更改、删除
x:是否允许用户进入对应的目录!

粘滞位

普通用户自己的家目录权限是700,这也就表明我在家目录创建的文件,别人都看不到(root除外)。
在这里插入图片描述
在这里插入图片描述
可以看到我们是无法进入别人的目录去操作的(root除外)。
那么有时候我们想多个用户进行文件数据的共享->此时我们建的共享文件不能在任何一个人的家目录中。
此时我们就可以在根目录创建一个共享目录mytmp并将权限设置为777(使用root账户创建)>
在这里插入图片描述
此时我们就可以看到这个目录权限全部都放开了
在这里插入图片描述
我们用csdnyyds的用户在目录中创建一个test.txt的文件,并在里面写入数据。
再用xz_108用户去访问该目录>
在这里插入图片描述
可以看到我们使用xz_108的用户可以看到里面的内容但是无法进行写入,那我们可以删掉别人的共享文件吗?
我们来试一试>
在这里插入图片描述
我们可以看到不是自己的文件但是可以删除,这个属实有点不太合适。
但是一个文件是否能被删除并不取决于文件本身,而是取决于文件所在的目录。
那么又有人说了,我可以把mytmp目录的w功能删掉不就可以了? 但是这又出现了另一个问题,删掉w功能,我们就无法在里面创建文件,更别提文件共享了。
此时为了解决这个问题我们提出了粘滞位>
当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由

  1. 超级管理员删除
  2. 该目录的所有者删除
  3. 该文件的所有者删除

在这里插入图片描述
我们再来使用csdnyyds中创建一个共享文件test.txt>
在这里插入图片描述
我们再来用xz_108用户去查看共享文件>
在这里插入图片描述
那我们这次可以删除吗?
在这里插入图片描述
可以看到加上粘滞位之后就无法删除别人的共享文件了。
一般我们Linux的根目录会有一个叫tmp的目录来实现文件共享>
在这里插入图片描述
我们能发现tmp的权限跟我们刚刚自己创建的mytmp共享目录的权限是一样的。
粘滞位:给目录设置,一般是共享目录,大家可以进行在目录进行各自文件的增改查,只允许文件拥有者或者root能制这个文件,其他人一概不允许,t是一种特殊的x权限!

关于权限的总结>

  • 目录的可执行权限是表示你可否在目录下执行命令。
  • 如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目, 即使目录仍然有-r 读权限(这 个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)
  • 而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限
  • 所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档。

🍀小结🍀

今天我们认识了Linux中的权限相信大家看完有一定的收获。
种一棵树的最好时间是十年前,其次是现在! 把握好当下,合理利用时间努力奋斗,相信大家一定会实现自己的目标!加油!创作不易,辛苦各位小伙伴们动动小手,三连一波💕💕~~~,本文中也有不足之处,欢迎各位随时私信点评指正!

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

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

相关文章

51单片机(十五)直流电机驱动(PWM)

❤️ 专栏简介:本专栏记录了从零学习单片机的过程,其中包括51单片机和STM32单片机两部分;建议先学习51单片机,其是STM32等高级单片机的基础;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 :适用于想要…

【并发编程】深入理解Java并发之synchronized实现原理

文章目录 一、synchronized 实现同步示例二、synchronized 典型错误示例三、Java 对象头与 Monitor四、synchronized代码块底层原理五、synchronized方法底层原理六、Java虚拟机对synchronized的优化 一、synchronized 实现同步示例 public class MyThread extends Thread{pri…

分布式事务之Seata讲解

文章目录 1 Seata1.1 简介1.2 架构1.3 四种事务模式1.3.1 XA1.3.1.1 定义1.3.1.2 优缺点1.3.1.3 代码中实现 1.3.2 AT1.3.2.1 定义1.3.2.2 全局锁1.3.2.2.1 AT模式脏写问题1.3.2.2.2 全局锁 1.3.2.3 AT模式优缺点1.3.2.4 与XA模式区别1.3.2.5 代码中实现 1.3.3 TCC模式1.3.3.1 …

云服务器配合CookieCloud插件,实现浏览器网站Cookie同步

CookieCloud是由方糖开发的一个浏览器网站Cookie同步工具,Cookie是一个可以短时间代表我们登录身份的凭证,CookieCloud同步Cookie其实就是在同步登录状态,由一个浏览器插件和一个可以自行搭建的服务器端组成,可以定时地、在本地加…

linux pl320 mbox控制器驱动分析 - (2) 消息传递示例

linux pl320 mbox控制器驱动分析 - (2)消息传递示例 1 Messaging from Core0 to Core12 Back-to-back messaging from Core0 to Core13 Messaging from Core0 to Cores 1, 2, and 3 using Auto Acknowledge4 Auto Link messaging from Core0 to Core1 us…

算法设计 || 第5题:钓鱼问题-北京大学网站在线算法题(贪心算法)

目录 (一)题目网址视频网址 (二)手写草稿思考 Part1: 慕课PPT Part2: 笨蛋的学习 (一)题目网址视频网址 北京大学网站在线算法题:1042 -- Gone Fishing (poj.org) 视频讲解(北…

进一步了解傅里叶变换的应用(附案例代码)

傅里叶变换(Fourier Transform)是一种非常常见的数学工具,能够将一个函数(或时域信号)分解成一些基本频率的合成。它使我们可以将时域信号(例如波形图)转换成频域信号,因而更容易地看…

ArcGIS按比例缩放图斑

今天介绍一下,在ArcGIS中,当我们需要按比例缩放图斑时,该如何操作呢。 可以使用“缩放”工具对要素进行缩放(使整个要素变大或变小)。在处理比例略有误差的数据(例如,来自多个源的细分宗地&…

ChatGPT背后的大预言模型 以及《ChatGPT全能应用一本通》介绍

大型语言模型已经彻底改变了我们通过自然语言处理进行交互的方式,使得更多的基于语言的应用程序成为可能,例如语言翻译,问答,文本摘要和聊天机器人。 由于这些模型是在大量文本数据集(如书籍,文章和社交媒…

C learning_13 操作符前篇(条件操作符、 逗号表达式、 下标引用、函数调用和结构成员、 表达式求值)

目录 条件操作符 逗号表达式 下标引用、函数调用和结构成员 1. [ ] 下标引用操作符 2. ( ) 函数调用操作符 3. 访问一个结构的成员 表达式求值 1.隐式类型转换 2.算术转换 3.操作符的属性 条件操作符 条件操作符是一种用于简化条件表达式的运算符。它通常表示为问号 …

《游戏编程模式》--重访设计模式--学习

序 在线阅读地址: 命令模式 Design Patterns Revisited 游戏设计模式 (tkchu.me) 参考文章: GameDesignPattern_U3D_Version/Assets/002FlyweightPattern at master TYJia/GameDesignPattern_U3D_Version GitHub 看到了没见过的观点:…

我的算法基础实验代码-下篇

第一题 题目介绍 输入一些数值,求出现的次数最多的数。如果有多个并列,则从大到小输出。 解题思路 代码实现 package com.nineWeek;import java.util.*;/*** author WangYH* version 2021.1.3* date 2023/5/7 18:29*/public class NumMostTimes {pu…

第十四届蓝桥杯b组c/c++

D:飞机降落&#xff08;全排列&#xff09; #include<iostream> #include<cstring> using namespace std;const int N 12; int n; struct node{int t, d, l; //t为此飞机的最早降落时间 d为盘旋时间 l为降落所需时间 }p[N]; bool st[N];//DFS求全排列模型 bool d…

【真题解析】系统集成项目管理工程师 2021 年下半年真题卷

本文为系统集成项目管理工程师考试(软考) 2021 年上半年真题&#xff0c;包含答案与详细解析。考试共分为两科&#xff0c;成绩均 ≥45 即可通过考试&#xff1a; 综合知识&#xff08;选择题 75 道&#xff0c;75分&#xff09;案例分析&#xff08;问答题 4 道&#xff0c;75…

ChatGPT 学习与使用总结

ChatGPT 学习与使用总结 最近ChatGPT大火&#xff0c;2023有可能就是AGI元年了。近两个月使用下来&#xff0c;ChatGPT给我最深刻的感觉就是它所具备的理解和思维能力&#xff0c;第一次体验时真的是非常震撼&#xff0c;完全是之前各种『人工智障』智能助理所不能比拟的&…

Windows系统出现蓝屏怎么办?这些方法可以修复!

Windows 系统蓝屏死机&#xff08;BSOD&#xff09;&#xff0c;也被称为“停止错误”&#xff0c;是Windows系统最常见的故障之一。 当Windows遇到严重的故障时就会显示蓝屏&#xff0c;系统崩溃。蓝屏上显示一个停止代码&#xff0c;如"MEMORY_MANAGEMENT"&#xf…

NeRF与三维重建专栏(一)领域背景、难点与数据集介绍

前言 关于该系列专栏&#xff0c;主要介绍NeRF在三维重建中的应用&#xff08;这里我们特指MVS&#xff0c;multi-view stereo&#xff0c;也即输入带位姿的图片&#xff0c;输出三维结构例如点云、mesh等&#xff1b;并且后面的工作也都是围绕MVS with NeRF讨论的。虽然也有w…

人类与ChatGPT:互动中的共同进步

一、ChatGPT的发展历程 1. GPT模型 ChatGPT是由OpenAI推出的一款聊天机器人&#xff0c;其核心技术基于GPT模型。GPT模型&#xff08;Generative Pre-training Transformer&#xff09;是一种基于Transformer结构的预训练语言模型。它在大规模的文本语料库上进行无监督的预训…

解析 ip addr 的输出的内容含义

解读 ip addr 的输出的网络连接信息含义 一、ifconfig 与 ip addr 用过Linux的读者都知道&#xff0c;在Linux查看ip可以使用ifconfig&#xff0c;当然这个ifconfig属于net-tools 工具集&#xff0c;其来源于BSD&#xff0c;Linux从2001年就不对其进行维护了。那我们应该用什…

基于下垂控制的并网逆变器控制MATLAB仿真模型

资源地址&#xff1a; 基于下垂控制的并网逆变器控制MATLAB仿真模型资源-CSDN文库 主要模块&#xff1a; 建议使用MATLAB2021b及以上版本打开&#xff01; 功率计算模块、下垂控制模块、电压电流双环控制模块、虚拟阻抗压降模块 扰动设置&#xff1a; 在0.5秒到2秒始端设置…