『Linux升级路』权限管理

news2024/11/18 15:50:47

 🔥博客主页:小王又困了

📚系列专栏:Linux

🌟人之为学,不日近则日退 

❤️感谢大家点赞👍收藏⭐评论✍️


目录

一、Linux中的用户

📒1.1Linux用户分类

📒1.2用户转换

📒1.3指令提权

二、Linux权限管理

📒2.1权限的概念

📒2.2Linux中的角色

📒2.3文件权限

📒2.4权限修改

💌2.4.1chmod

💌2.4.2chown

💌2.4.3chgrp

📒2.5目录权限

📒2.6粘滞位


🗒️前言:

在上一期中我们学习了Linux常见的指令,那我们为什么可以使用这些指令呢?这就要讲到我们的权限。权限决定了一个人可以干什么和不可以干什么,它是一种限制,在日生活中大家也都受到过权限的约束,今天就让我们认识Linux中的权限管理。

一、Linux中的用户

📒1.1Linux用户分类

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

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

📒1.2用户转换

命令:su [用户名]

功能:切换用户

用户切换可分为:

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

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

注意:上述操作仅仅只是对用户身份进行了切换,不改变当前所处路径,如上图,身份切换前后都处在wtl用户的家目录。此时如果想切回wtl用户,只需要输入 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.2Linux中的角色

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

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

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

📒2.3文件权限

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

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

🎀文件类型

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

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

🎀基本权限

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

  •  r :读权限,对于普通文件而言,具有读取文件内容的权限;对目录文件来说,具有浏览目录信息的权限。
  •  w :写权限,对于普通文件而言,具有修改文件内容的权限;对目录文件来说,具有删除、移动目录文件的权限。
  •  x :可执行权限,对于普通文件而言,具有执行文件的权限;对目录文件来说,具有进入目录的权限。
  •  - :表示不具备该权限。

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

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

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

📒2.4权限修改

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

💌2.4.1chmod

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

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

常用选项:

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

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

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

示例:

  • chmod u+x test1.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.2chown

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

功能:修改文件的拥有者 

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

示例:

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

💌2.4.3chgrp

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

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

常用选项:

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

示例:

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

📒2.5目录权限

  • 可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容
  • 可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件
  • 可执行权限:如果目录没有可执行权限,则用户无法进入对应的目录

📒2.6粘滞位

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

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

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

粘滞位总结:

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

 本次的内容到这里就结束啦。希望大家阅读完可以有所收获,同时也感谢各位读者三连支持。文章有问题可以在评论区留言,博主一定认真认真修改,以后写出更好的文章。你们的支持就是博主最大的动力。

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

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

相关文章

网络编程 day3

#include <head.h> #define SER_PORT 6678 //服务器端口号 #define SER_IP "192.168.115.64"//服务器IP地址 #define CLI_PORT 6666 //客户端端口号 #define CLI_IP "192.168.115.93" int main(int argc, const char *argv[]) {//1.创建套接字,用于连…

css-边框流水线

效果图&#xff1a; 代码&#xff1a; <!DOCTYPE html> <html><head><meta charset"utf-8"><meta name"viewport" content"initial-scale1.0, user-scalableno" /><title></title><style type&…

eNSP笔记③

密码模式 Telnet ①首先进入console口 [Huawei]user-interface console 0②设置模式为密码模式,回车后输入密码 [Huawei-ui-console0]authentication-mode password ③设置对应权限3 [Huawei-ui-console0]user privilege level 3用户级别允许使用的命令级别进入系统视图保存…

基于国产ARM+FPGA+AD的验证和生产测试自动化

TestStand是一款测试执行软件&#xff0c;可帮助工程师在验证和生产环节加速开发和部署系统。 验证和生产测试自动化 TestStand可借助自身功能特性&#xff0c;实现用户所有测试系统中整个测试过程的自动化、提速和标准化: 调用和执行使用LabVIEW、Python、C/C或.NET编写的测…

【API篇】八、Flink窗口函数

文章目录 1、增量聚合之ReduceFunction2、增量聚合之AggregateFunction3、全窗口函数full window functions4、增量聚合函数搭配全窗口函数5、会话窗口动态获取间隔值6、触发器和移除器7、补充 //窗口操作 stream.keyBy(<key selector>).window(<window assigner>)…

【31】c++设计模式——>模板方法模式

模板方法模式通常由以下几个部分组成&#xff1a; 1.抽象基类&#xff08;Abstract Base Class&#xff09;&#xff1a;抽象基类定义了一个算法的骨架&#xff0c;其中包含了模板方法和一些基本操作方法。模板方法在抽象基类中被声明为虚函数&#xff0c;它定义了算法的流程&…

html网页多个div鼠标移动自动排列实例

程序示例精选 html网页多个div鼠标移动自动排列实例 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对《html网页多个div鼠标移动自动排列实例》编写代码&#xff0c;代码整洁&#xff0c;规则…

【数据集】1980-2020年(5年)土地利用分类数据-中国科学院

土地利用/覆被变化是自然客观条件和人类社会经济活动综合作用的结果&#xff0c;其形成与演变过程在受到地理自然因素制约的同时&#xff0c;也越来越多的受到人类改造利用行为的影响。伴随城市化进展&#xff0c;土地供需矛盾日益凸显&#xff0c;土地利用已经成为城市发展的重…

[moeCTF 2023] crypto

这个比赛从8月到10月&#xff0c;漫长又不分段。结束了以后前边的都基本上忘光了。还是分段提交的好点&#xff0c;有机会写写。不过反正也是新生赛&#xff0c;又不是新生只是打个热闹。 ezrot 厨子解决大部分问题 可可的新围墙 给了1个串 mt3_hsTal3yGnM_p3jocfFn3cp3_hFs…

[c语言]深入返回值为函数指针的函数

之前写过个好玩代码 c语言返回值为函数指针的函数 一、发现 #include<stdio.h>int (*drink(void)) (void) {static int i;i;printf("(%d)\n", i);return (int(*)(void))drink; }int main() {drink()();return 0; }这个代码定义了一个返回值为函数指针的函数&…

Python基础入门例程11-NP11 单词的长度

目录 描述 输入描述&#xff1a; 输出描述&#xff1a; 示例1 解答&#xff1a; 说明&#xff1a; 描述 牛妹正在学英语&#xff0c;但是背单词实在是太痛苦了&#xff0c;她想让你帮她写一个小程序&#xff0c;能够根据输入的单词&#xff0c;快速得到单词的长度。 输…

测试C#调用Windows Media Player组件

新建基于.net framework的Winform项目&#xff0c;可以通过添加引用的方式选择COM组件中的Windows Media Player组件&#xff0c;如下图所示&#xff1a;   也可以在VS2022的工具箱空白处点右键&#xff0c;选择“选择项…”菜单。   在弹出的选择工具箱项窗口中&#xf…

多线程环境下的原子性问题

什么是原子性呢? 在数据库事务的ACID特性中就有原子性&#xff0c;它是指当前操作中包含的多个数据库事务操作&#xff0c;要么全部成功&#xff0c;要么全部失败&#xff0c;不允许存在部分成功、部分失败的情况。而在多线程中的原子性与数据库事务的原子性相同&…

WPS中图的自动编号及引用

WPS中图的自动编号及引用 图的自动编号图编号的引用图编号及引用的更新 图的自动编号 将光标放置在需要插入编号的位置点击“引用”→“题注”&#xff1a; 点击“引用”→“题注”&#xff1a; 点击“编号”&#xff0c;设置图的编号格式&#xff0c;可勾选“包含章节编号”&…

【RTOS学习】信号量 | 互斥量 | 递归锁

&#x1f431;作者&#xff1a;一只大喵咪1201 &#x1f431;专栏&#xff1a;《RTOS学习》 &#x1f525;格言&#xff1a;你只管努力&#xff0c;剩下的交给时间&#xff01; 信号量 | 互斥量 | 递归锁 &#x1f37a;信号量&#x1f964;原理&#x1f964;使用信号量的函数&…

Java反射获取内部类方法

Java反射获取内部类方法 结论一、案例准备二、测试方法&#xff1a;使用反射获取类的成员内部类和方法具体操作具体操作&#xff08;使用getDeclaredClasses&#xff09; 结论 Java 通过反射可以获得内部类&#xff0c;包括内部类属性信息和方法。 一、案例准备 创建了一个类…

1024,向着“顶尖程序员“迈进

10月24日&#xff0c;对每个程序员而言&#xff0c;都是一个具有特殊意义的日子。1024这个数字&#xff0c;不再只是计算机存储容量的基础单位&#xff0c;更是我们向着技术巅峰进发的象征。 回顾我的程序员之路&#xff0c;那是一个不断学习、不断成长的过程。起初是对编程充…

『第二章』这只燕子很特别:Swift 特性

在本篇博文中,您将学到如下内容: 1. Swift 语言概览2. Objective-C “练废了”&#xff0c;重新写一门新语言吧&#xff01;3. Swift 的“习性”与优势3.1. Swift 更简洁、更易于阅读、所需代码更少3.2. Swift 更加安全3.3. Swift 内存管理更加统一3.4. Swift 更快3.5. Swift 会…

Redis主从模式(二)---拓扑结构及复制过程

目录 一, Redis主从模式下的复制拓扑结构 1.1 一主一从结构 1.2 一主多从结构 1.3 树形主从结构 二, 主从复制过程 2.1 主从复制建立复制流程图 2.2 数据同步(psyc) 1.replicationid/replid (复制id) 2.offset(偏移量) 2.3 psync运行流程 2.4 全量复制 2.5 部分复制…

Opencv-图像插值与LUT查找表

图像像素的比较 白色是255&#xff0c;黑色是0 min(InputArray src1,InputArray src2,OutputArray dst) max(InputArray src1,InputArray src2,OutpurArray dstsrc1:第一个图像矩阵&#xff0c;通道数任意src2&#xff1a;第二个图像矩阵&#xff0c;尺寸和通道数以及数据类型…