【Linux】权限管理

简介: 【Linux】权限管理

一、shell 命令以及运行原理


Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)“ ,但我们一般用户,不能直接使用kernel。


而是通过kernel的 外壳程序,也就是所谓的 shell,来与kernel沟通。


   shell 是什么?


shell 是包裹在操作系统外部的软件层,所以形象的称之为 外壳程序。


而从技术角度,Shell的最简单定义是:命令行解释器(command Interpreter)主要包含:

   将使用者的命令翻译给核心(kernel)处理。


   同时,将核心(kernel)的处理结果翻译给使用者。


以上说明,我们可以用这幅图来理解:


0693e5bd3a3c7771ccc66cb7ffc685de.png



   那么我们如何理解 shell ?


我们理解 shell 分为两个层面,理性理解 和 感性理解。


理性理解:


对比windows GUI,我们操作windows 不是直接操作windows内核,而是通过图形接口,点击,从而完成我们的操作(比如进入D盘的操作,我们通常是双击D盘盘符.或者运行起来一个应用程序)。


shell 对于Linux,有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运行出结果,通过shell解析给用户。


如果shell 接受到非法指令,可能会直接拦截,不会让操作系统执行指令,从而达到保护操作系统的目的。


为了防止用户的非法指令导致 shell 自身崩溃,shell 一般都不会去执行对应的指令,而是让子进程去执行。


感性理解:


可能,理性理解比较生涩,我们就用一个小故事来感性讲解它们之间的关系:


人物简介:


   张三:地主家的傻儿子,情窦初开的羞涩码农,年薪30万+,有房有车有存款,不会和女生交流,从小暗恋如花。


   如花:张三的暗恋对象,心系李四,觉得张三是个二愣子,没有一点好感。


   李四:如花的男朋友,两人经常一起看电视。


   王婆:张家村知名红娘,说媒无一败绩,人称张家村小月老。


   村长:又名张老三,是张三和蔼可亲的村长父亲,全村首富,在张家村一手遮天。



0e9ff4bcb94fd70f00c03099ebcf79c8.png


   故事开始:


   从前有个人叫张三,张三从小就沉迷于编程,在大学毕业后,他也拿到了一份不错的 offer 30w+。但是张三到现在还没有谈过恋爱,于是想起了在家乡的如花,感觉自己十分想念家乡。由于强烈的思乡之情,张三回到了张家村。


   张三的父亲是全村首富,是村长,权势很大。张三找了村东头的王婆帮自己和如花说一下媒。张三告诉王婆自己的需求:让如花接受自己,和如花谈恋爱。王婆知道了张三的需求,跑去找如花。


   王婆来到了如花的家,和如花说:“如花呀,我们那个村长的儿子张三对你有些意思,人家年薪30w,有房有车有存款,你考虑考虑?”如花想起小时候有个暗恋他的二傻子张三,立马起了鸡皮疙瘩,和王婆说,我对张三没感觉,我们不合适。


   王婆接收到信息后,回去和张三说,如花呢觉得你挺好,但是你俩不合适,要不你换个。张三坚持说我就要如花,王婆拗不过你,更拗不过你的村长父亲。于是,王婆就又去如花家门口,还没到呢,就远远的看到李四和如花在看电视,李四和如花的家长也在聊天,到了谈婚论嫁的地步了。于是王婆就折返回张三家,直接和张三说,你和如花真的不适合,如花不可能和你有交际了,你还是打消这个念头吧!

   但是张三没有放弃,王婆不想给他说媒,但是害怕张三的村长父亲。自己不想给张三说媒,但是没办法。我知道这个媒事说不成还要给他办,一两次失败没有影响,但是说媒次数多了就不好了。那王婆的月老会所就受到影响了。说不成媒,还会影响自己的口碑,划不来。


   王婆决定招聘实习生。有一天,村长又叫王婆去给张三说媒,王婆没去,她派了一个实习生A去。这时成功不成功已经不重要了,反正王婆自己没去。这样的原因是因为说砸了不是王婆干的,自己不会收到影响,就算失败了,王婆还可以换一个实习生B过去。这样不会影响到自己,王婆在这样的方法之下,以后别人都找王婆说媒的时候,都会排实习生过去做王婆做的工作。


听完这个故事,我们也可以大致猜出它们扮演的角色:张三是 用户,王婆是 shell,如花是 操作系统。


5b31e88bb12bb576a4c030f284c0a0bc.png


案例重讲解:


   张三(用户)把自己的需求给 王婆(shell) ,王婆(shell) 问 如花(操作系统) ,考虑是否和张三谈恋爱就是在 执行用户的指令。如花不考虑张三,就是类似于禁止访问或程序运行失败,最后王婆将结果反馈给张三,就是把 shell 把结果返回给用户 。


   第二次,王婆看到如花心有所属后没有再去找如花,就是 shell指令为了保护操作系统而拦截了非法请求。


   王婆聘请实习生,让实习生去说媒,就是 shell在执行命令的时候会创建子进程来执行。


   通过两种理解后,我们总结一下:shell 是外壳程序,包裹在操作系统外层的软件层,为命令行解释/操作解释,将用户的操作解释交给操作系统,让操作系统执行,执行完毕,将结果经过shell再传递给用户。


补充:


如果我们在终端输入 ls /usr/bin/bash -a

[lx@VM-4-3-centos ~]$ ls /usr/bin/bash -a
/usr/bin/bash



之前使用ls /usr/bin/bash -a是,显示的并不是shell而是bash,bash也是一种外壳程序。对于它们两个我们可以把它理解为 bash 是王婆,但是 shell 是媒婆。bash是 centos 上的外壳程序,而 shell 是 外壳程序 的统称。




二、Linux的用户权限


1、权限概念引入


生活中, 权限处处存在。比如爱奇艺,有些视频是vip才能看的;打游戏的时候,有些皮肤是需要钱买的,这些都是对人的约束和限制。


有时访问的对象天然可能没有这种“属性”。比如我想在看小说的时候,在番茄小说上和 visual studio 2022上一样写代码,这是不可能的。因为没有这种功能,应用上没有这一层属性。


所以我们基本可以得出 权限 = 人 + 事物属性,这一结论。


了解了基本概念,我们开始讲解 Linux 上的权限。



2、用户分类


Linux上,有两种用户:root(超级用户) 和 普通用户。


       root(超级用户):可以在linux下做任何事情,不受权限约束,且一台机器上只有一个root用户。

       普通用户:在Linux下做有限的事情,可以有多个普通用户。

       超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。



3、用户切换


命令:su 用户名


功能:切换用户


对于 root用户来说,使用 su 普通用户 可以直接切换到普通用户:


49282b093afa93677d58af6be3aa12cd.png


但是对于普通用户来说,使用 su 指令时,会要求输入 root 用户的密码


88d1f97269ff6dbd12660ee829235c71.png

而对于 普通用户 切换到 超级用户 还有两种方式:


  1. su:从普通用户切换到超级用户,所处工作目录不变化,只单纯地进行身份变化
  2. su -:从普通用户切换到超级用户,会改变工作目录

对于 su:


502dd111891554be2c7d952740f6125e.png

对于 su -:


2b02419a5f37dae114d2b2f40f970b07.png


注:如果切换用户后想要退出,可以按 ctrl + d 退出,回到之前的用户。


4、用户提权


使用普通用户时,有时会因为权限不够,而导致某条指令无法执行。


假如我用 lx 用户创建一个文件,然后切换到 root 用户后,写入内容并减权,切回 lx 用户发现无法查看文件:


39bc139ca98afb8e5433cc471f43be6a.png


直接就出现了报错:Permission denied,意思是权限被拒绝。


面对这种情况可以 单条指令进行暂时提权:


对于提权就要用到 sudo 指令,但是这个需要配置一下,不会配置的同学可以跳转到这篇博客。


sudo 指令是 让普通用户使用单条指令时暂时拥有 root 用户的权限,使用 sudo 命令后需要输入 当前普通用户的密码:



655c06a91c135fe7d645eb065ea236f9.png


注:sudo 的存活期一般为五分钟,五分钟内再次使用 sudo 指令无需输入密码。


埋下伏笔:sudo输的是普通用户的密码,那么我想要加权只要输自己的密码就好了,那么root是不是形同虚设?这个问题在以后的文章中会提及,大家可以思考一下。







相关文章
|
4月前
|
算法 Linux 数据安全/隐私保护
【linux】root大王如何制约普通用户——权限管理
【linux】root大王如何制约普通用户——权限管理
|
6月前
|
Ubuntu Linux Shell
【Linux操作系统】探秘Linux奥秘:用户、组、密码及权限管理的解密与实战
【Linux操作系统】探秘Linux奥秘:用户、组、密码及权限管理的解密与实战
141 0
|
6月前
|
算法 Linux 数据安全/隐私保护
Linux权限管理:深入理解setuid、setgid、seteuid和setegid
Linux权限管理:深入理解setuid、setgid、seteuid和setegid
525 0
|
13天前
|
Linux 数据安全/隐私保护
linux权限管理
本文介绍了Linux系统中的权限管理,包括权限的概念、用户和用户组与权限的关系、文件权限位的说明以及rwx权限的具体含义。同时,详细讲解了如何使用`chmod`和`chown`命令更改文件和目录的权限,并通过多个实验演示了不同权限组合对文件和目录的实际影响。最后,总结了文件和目录权限的一些重要知识点,帮助读者更好地理解和应用Linux权限管理。
39 1
linux权限管理
|
1月前
|
Linux 数据安全/隐私保护
探索Linux操作系统下的权限管理
【8月更文挑战第66天】在数字世界中,操作系统的权限管理就如同现实世界中的钥匙和锁,保护着我们的数据安全。本文将带你深入理解Linux系统中的权限设置,通过实际代码示例,让你掌握文件和目录权限的分配与管理技巧。准备好了吗?让我们开始这场关于权限管理的探险之旅吧!
83 14
|
5月前
|
网络协议 Linux 数据安全/隐私保护
【Linux操作系统】权限管理和粘滞位
【Linux操作系统】权限管理和粘滞位
【Linux操作系统】权限管理和粘滞位
|
5月前
|
安全 Linux Shell
【Linux】权限管理
【Linux】权限管理
49 5
|
6月前
|
运维 安全 Linux
深入理解 Linux 文件系统的权限管理
【5月更文挑战第30天】 在 Linux 操作系统中,文件系统权限管理是维护系统安全与数据完整性的基石。本文旨在深入探讨 Linux 权限模型的核心概念、实现机制及其对系统安全性的影响。通过对用户身份、文件权限和访问控制列表(ACL)等关键元素的剖析,揭示权限管理在实际操作中的应用细节。文章还将讨论如何有效配置权限来优化系统性能和提升安全性,以及解决常见的权限问题的策略。
|
6月前
|
Linux PHP 数据安全/隐私保护
深入理解PHP7的返回值类型声明深入理解 Linux 文件系统的权限管理
【5月更文挑战第30天】在PHP7中,引入了返回值类型声明的特性。这一特性使得开发者可以在函数定义时指定函数应返回的值的类型。本文将详细解析返回值类型声明的用法,以及它在实际开发中的应用,帮助读者更好地理解和使用这一特性。
|
6月前
|
安全 Linux 数据安全/隐私保护
深入理解Linux文件系统的权限管理
【5月更文挑战第24天】 在Linux操作系统中,文件系统权限管理是维护系统安全和用户数据隔离的关键机制。本文将深入探讨Linux文件系统中的权限模型,包括用户、组和其他类别的读、写、执行权限。我们将分析权限位的具体含义,如何通过命令行工具修改权限,以及权限掩码(umask)的作用。此外,我们还将讨论文件系统权限在实际应用中的常见问题及其解决方案,帮助读者构建更为安全且高效的Linux工作环境。