目录
前言
在社会中我们每个人都有各自的身份,而相应的身份又决定着是否具有对应的权限。比如我们想要管理一个仓库,那必须要具有仓库管理员的身份。Linux系统中同样具有权限的概念,那接下来我们就来一起看看Linux世界中的权限是如何分配的吧。
一、shell命令以及运行原理
在介绍linux权限之前,我想要先介绍另一个概念,用户是如何与操作系统进行交互的?这里就要提到外壳程序shell。
Linux严格意义上说是一个操作系统,我们称之为“核心(kernel)”。我们一般用户是不能与kernel直接进行交互的,一般要借助kernel的外壳程序shell。我们将指令传达给shell,再由shell传递给kernel,同时shell会把kernel的处理结果翻译给使用者。
为什么要借助shell和kernel进行交互呢?原因当然是因为直接和操作系统交互是一个难度非常大的事,我们大多数人并不擅长,所以要找一个中间人来帮助我们。(可以理解成一个闷骚的男孩子看上了隔壁的女孩子,但他并不擅长和女孩儿打交道,所以找了一个媒婆去帮他牵线搭桥)。
shell的作用:
1.实现用户和操作系统的交互
2.保护操作系统,当用户提出错误或不合理的请求时,shell会直接拒绝
shell的运行原理:
创建子进程,让子进程进行命令行解释,这样子进程出了任何问题都不会影响父进程shell。(可以看出shell很聪明,找了一个劳动力帮他打工,一旦出了事情就直接让劳动力背锅)
shell vs bash
笔者使用的是centos 7,在使用过程中并没有见到shell,而是经常见到bash。
那么shell和bash是什么关系呢?可以这么理解:shell是所有外壳程序的统称,而bash是一种具体的shell。
二、Linux权限的概念
- 超级用户:可以再linux系统下做任何事情,不受限制
- 普通用户:在linux下做有限的事情。
- 超级用户的命令提示符是“#”,普通用户的命令提示符是“$”
命令:su [用户名]
功能:切换用户。
例如,要从root用户切换到普通用户user,则使用 su user。 要从普通用户user切换到root用户则使用 su root(root可以省略),此时系统会提示输入root用户的口令。
如果我们仅仅想提升当前指令的权限可以在指令前面加上sudo,但这要求发送指令的用户在超级用户的信任列表里。
三、Linux权限管理
1.文件访问者的分类
- 文件及目录所有者:u--user
- 文件及目录所有者所在组的用户:g--group
- 其他人:o-other