【Linux】shell运行原理及权限

简介: 前几期文章重点讲解了Linux的一些基本指令,让大家能够快速的上手使用Linux,也不知道大家运用的熟练不,今天我们深入学习下Linux的shell命令以及运行原理和Linux下的权限方面的一些知识。

shell命令以及运行原理

Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)“ ,但我们一般用户,不能直接使用kernel。而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。如何理解?为什么不能直接使用kernel?


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

主要包含:

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

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

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

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


帮助理解:

如果说你是一个闷骚且害羞的程序员,那shell就像媒婆,操作系统内核就是你们村头漂亮的且有让你心动的MM小花。你看上了小花,但是有不好意思直接表白,那就让你你家人找媒婆帮你提亲,所有的事情你都直接跟媒婆沟通,由媒婆转达你的意思给小花,而我们找到媒婆姓王,所以我们叫它王婆,它对应我们常使用的bash。

shell的本质也是一个可执行程序(进程),系统启动期间,一直在运行。对于用户输入的有风险指令shell通过创建子进程去执行这个有风险的指令。


Linux权限的概念

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


超级用户:可以再linux系统下做任何事情,不受限制

普通用户:在linux下做有限的事情。

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


超级用户:

88bb9389f20e4a1bbcd8cad8afa55baf.png


普通用户:

b4e51dd4bb8f462d9d0b12f2a73fbfcb.png


命令:su [用户名]

功能:切换用户。

例如,要从root用户切换到普通用户user,则使用 su user。 要从普通用户user切换到root用户则使用 su,root(root可以省略),此时系统会提示输入root用户的口令。


普通用户切换root用户

c7a434fe43564ab09e72c5f431a559f7.png


su - root 指令是重新登录到root账户

5d93936be286458881a4447d8233e26e.png


su root 指令是切换身份

指令exit是退回到原来的账号

root账户切换普通用户

28325d0ca2f5408aa61a6a7b5f606510.png

root账户切换到普通用户是不需要密码的。


Linux权限管理

root用户之下无权限


文件访问者的分类(人)

文件和文件目录的所有者:u---User

文件和文件目录的所有者所在的组的用户:g---Group

其它用户:o---Others


文件类型和访问权限(事物属性)

b7426c2a5de44967808dd41a9fa8d857.png

文件类型


d:文件夹

-:普通文件

l:软链接(类似Windows的快捷方式)

b:块设备文件(例如硬盘、光驱等)

p:管道文件

c:字符设备文件(例如屏幕等串口设备)

s:套接口文件


基本权限


i.读(r/4):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限

ii.写(w/2):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限

iii.执行(x/1):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限

iv.“—”表示不具有该项权限


文件权限值的表示方法

字符表示方法

0c429a1c7e2e459f9f7c5f666bebe63a.png

8进制数值表示方法


81e81f7378bb493dbfcf1fe9c9116033.png

文件访问权限的相关设置方法

chmod指令

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

格式:chmod [参数] 权限 文件名

常用选项:

R -> 递归修改目录文件的权限

说明:只有文件的拥有者和root才可以改变文件的权限

chmod

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

+:向权限范围增加权限代号所表示的权限

-:向权限范围取消权限代号所表示的权限

=:向权限范围赋予权限代号所表示的权限

用户符号:

u:拥有者

g:拥有者同组用

o:其它用户

a:所有用户

42318d72b6ae406db9715386ca7e916b.png

如图有一个文件file.txt的所属者和所属组都为wyj但是对于这个文件没有任何权限,不能读也不能写。


5c0fe9ff073044a899a368c2a03fdfb1.png


如图我们使用chmod指令对所属者加上读和写权限,就可以正常读写了。

ce74eb42a6334d1c9c3f003bf64b18cb.png



如图我们使用chmod指令对所属者、所属组、其他人都加上读、写执行权限。

9a16a8f9b156456cbfba9c7adffe6b1f.png



如图我们使用二进制对所属者、所属组、其他人都去除读、写、执行的权限。

3772ade61f2a484bb23766f31d4328b8.png

如图我们切换root用户,尽管file.txt这个文件对所属者、所属组、其他人都没有读、写、执行权限,root账户依然可以进行读、写、执行。因为root之下无权限。


d20a2c4ff64d476c9a032c8682c61a2c.png

我们会发现这样一个问题,这个文件的所属者、所属组都是wyj,也有这个文件的读、写、执行的权限,那为什么不可以呢?

欲知后事如何,且听下回分解!!!

相关文章
|
1天前
|
Linux
【Linux权限】粘滞位
【Linux权限】粘滞位
|
1天前
|
Linux
【Linux】Linux权限掩码umask
【Linux】Linux权限掩码umask
【Linux】Linux权限掩码umask
|
1天前
|
Linux
【Linux】进入一个目录需要什么权限-目录的权限
【Linux】进入一个目录需要什么权限-目录的权限
【Linux】进入一个目录需要什么权限-目录的权限
|
1天前
|
Linux 数据安全/隐私保护 Windows
【Linux】Linux权限
【Linux】Linux权限
【Linux】Linux权限
|
1天前
|
Shell Linux 程序员
【Linux】shell命令以及运行原理
【Linux】shell命令以及运行原理
【Linux】shell命令以及运行原理
|
2天前
|
自然语言处理 数据挖掘 Linux
ModelScope问题之拷贝到内网linux系统运行代码报错如何解决
本合集将提供ModelScope安装步骤、配置要求和环境准备,以便用户顺利启动ModelScope进行模型开发和测试。
23 0
|
2天前
|
Linux 数据安全/隐私保护
Linux权限
Linux权限管理是一种控制用户和程序对文件和文件夹的访问的方法。它使用三个主要的概念:所有者(owner)、群组(group)和其他(others)。 每个文件和文件夹都有一个所有者,这是创建该文件或文件夹的用户。所有者拥有最高的权限,可以对文件和文件夹进行更改、读取和删除。群组是一组用户,他们可以共享文件和文件夹的权限。其他用户是除所有者和群组以外的其他用户。 Linux使用三个主要的权限:读、写和执行。读权限允许用户查看文件或文件夹的内容,写权限允许用户更改文件或文件夹的内容,执行权限允许用户运行文件或文件夹中的程序。是一种控制用户和程序对文件和文件夹的访问的方法。它使用三个主要的概念:
6 0
|
2天前
|
Linux C语言 数据安全/隐私保护
Linux的权限(3)
Linux的权限(3)
21 0
|
27天前
|
Ubuntu Linux Shell
【Linux操作系统】探秘Linux奥秘:shell 编程的解密与实战
【Linux操作系统】探秘Linux奥秘:shell 编程的解密与实战
35 0
|
1月前
|
Shell Linux C++
Linux C/C++ 开发(学习笔记二):Shell脚本编程案例
Linux C/C++ 开发(学习笔记二):Shell脚本编程案例
20 0

相关产品

  • 云迁移中心