【Linux第二章】Linux内核与权限
Linux内核🧐
1.内核简述✨
Linux内核是操作系统的“心脏”,它直接与电脑的硬件(CPU、内存、硬盘等)打交道。它不仅负责CPU资源调度,也管理资源拷贝、转移,甚至动一下鼠标,按一下键盘,内核都会响应。举个例子,操作系统就像一家公司的管理层,负责制定、分配、协调任务,而内核就像技术总监,负责最核心的技术问题。Linux内核是操作系统的一部分,而操作系统还包括Shell,图形化界面,工具和应用程序等。
2.Shell(命令解释器)✨
Shell是用户和内核之间的“翻译官”,它不碰硬件,只负责把用户命令翻译成内核能听懂的语言,比如你使用pwd命令,内核是听不懂的,需要Shell进行翻译,然后传递给内核,内核再将命令的结果传给Shell,Shell翻译后再展示给用户,充当一个中间人的角色。
3.内核与Shell✨
内核负责干活,用户无法直接与内核进行交流,Shell是用户与内核之间的传话筒。Shell出现的原因则是因为内核可以直接对系统进行操作,所以用户操作不当会导致系统崩坏,而Shell可以使用户简化操作,提供帮助。
Linux权限🧐
1.什么是Linux权限✨
在我们使用Linux时,发现有一些指令在我们自己创建的用户下无法使用,而在root用户下或者使用sudo命令(需要在/etc/sudoers添加白名单)就可以使用,由此说明了Linux是具有权限概念的。Linux权限是Linux系统中用来控制文件和目录访问权限的机制,它决定了谁可以对文件或目录进行什么操作(读、写、执行)。
2.权限的基本概念✨
Linux中,每个文件和目录都有三组权限,分别对应三类用户:
- 所有者(Owner):文件或目录的创建者。
- 所属组(Group):文件或目录所属的用户组。
- 其他人(Others):既不是所有者,也不在所属组中的用户。
每组权限又分为三种操作:
- 读(r):可以查看文件内容或列出目录中的文件。
- 写(w):可以修改文件内容或在目录中创建/删除文件。
- 执行(x):可以运行文件(如果是程序)或进入目录。
3.权限的表示方法✨
符号表示法
Linux中权限用9个字符表示,分为三组(所有者,所属组,其他人),每组3个字符(r、w、x)。例如
rwxrw-r--
表示:
- 第一组
rwx
:所有者有读、写、执行权限。- 第二组 `rw-:所属组有读、写权限,但不能执行。
- 第三组
r--
:其他人只有读权限。数字表示法
权限也可以用3位0-7之间的数字表示,分别对应所有者、所属组、其他人。
r
= 4
w
= 2
x
= 1将每组权限的值相加,就是对应的数字。
例如:rwxrw-r--
=764
所有者:
rwx
= 4+2+1 = 7所属组:
rw-
= 4+2+0 = 6其他人:
r--
= 4+0+0 = 4
4.查看权限✨
用
ls -l
命令可以查看文件或目录的权限。-rw-r--r-- 1 user group 4096 Oct 10 file.txt # 普通文件 drwxr-xr-x 2 user group 4096 Oct 10 dir # 目录 crw-rw---- 1 root video 29, 0 Oct 10 /dev/video0 # 字符设备
- 第一列(如
rw-r--r--
)表示权限。- 第二列是所有者,第三列是所属组。
由上命令,
-rw-r--r--
中的第一个字符-
表示文件类型,下面将会扩充一下Linux中文件类型的小知识。
5.Linux文件类型✨
Linux中区分文件类型与后缀无关,后缀存在的意义是给用户看的,所以可以说Linux下一切皆文件,Linux中用
-rw-r--r--
的第一个字符来区分文件类型:
-
: 普通文件,源代码,可执行程序,库等d
: 目录文件c
: 字符设备文件(读取字符)b
: 块设备文件(磁盘设备)l
: 链接文件(快捷方式)p
: 管道文件(进程间通信)通过上面几个字符,Linux可以确定当前文件是什么类型。
使用file指令可以直接查看文件类型
6.修改文件权限、所有者、所属组✨
Linux中使用chmod可以修改文件权限
# 符号修改 chmod u+rwx file.txt # 给所有者添加读、写、执行权限 chmod g-w file.txt # 去掉所属组的写权限 chmod o=r file.txt # 给其他人设置只读权限 # 数字修改 chmod 755 file.txt # 设置权限为 rwxr-xr-x chmod 644 file.txt # 设置权限为 rw-r--r--
u
:所有者g
:所属组o
:其他人+
:添加权限-
:去掉权限=
:设置权限如果要修改文件的所有者和所属组,可以用chown和chgrp进行修改
chown user file.txt # 修改文件的所有者 chown user:group file.txt # 同时修改文件所有者和所属组 chgrp group file.txt # 修改文件的所属组
权限先看拥有者再看所属组,如果我既是拥有者也是所属组,那么先判断拥有者权限,root用户下能无视权限。
7.权限掩码✨
我们发现,一个文件被创建时,它会有一个默认的权限设定,这是操作系统为我们所设置的默认权限,如果我们想要修改默认权限,可以通过修改权限掩码umask实现。
修改权限掩码,首先要知道最终权限 = 起始权限 & (~umask):
- 文件默认权限:
666 & (~umask)
- 目录默认权限:
777 & (~umask)
如图,默认权限掩码是002(第一个0是表示该数是8进制),我们创建一个普通文件,它的起始权限为666,将其转化为二进制为110 110 110 & (~000 000 010) => 110 110 110 & 111 111 101 => 110 110 100,再转回8进制变为664,符合下图
rw-rw-r--
权限。
当我们将umask修改为022,方法同理,110 110 110 & (~000 010 010) => 110 110 110 & 111 101 101 => 110 100 100,转回8进制变为644,符合下图
rw-r--r--
权限。
修改权限掩码可以让用户更精细的管理权限,但是直接使用umask命令修改时只在当前起作用,如果要永久修改需要在用户的配置文件中修改。
8.权限的应用✨
文件权限:
rw-
:可以读写文件,但不能执行。r--
:只能读文件。rwx
:可以读写并执行文件(如果是程序)。目录权限:
r--
:可以列出目录中的文件,但不能进入目录。rw-
:可以列出和修改目录中的文件,但不能进入目录。r-x
:可以进入目录并查看文件,但不能修改。rwx
:可以完全控制目录(进入、查看、修改)。
9.粘滞位✨
当我们需要共享一个文件夹时,为了确保文件夹安全,不被共享者删除,可以设置粘滞位(只有文件夹能设置)进行保护,当设置以后,该文件夹只有所有者能够删除。
chmod +t dirname # 设置粘滞位
结尾👍
以上便是Linux内核与权限的全部内容,如果有疑问或者建议都可以私信笔者交流,大家互相学习,互相进步!🌹