【Linux第二章】Linux内核与权限

embedded/2025/2/11 17:05:14/

【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中,每个文件和目录都有三组权限,分别对应三类用户

  1. 所有者(Owner):文件或目录的创建者。
  2. 所属组(Group):文件或目录所属的用户组。
  3. 其他人(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指令可以直接查看文件类型

image-20250210002057697

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--权限。

image-20250210003904103

  当我们将umask修改为022,方法同理,110 110 110 & (~000 010 010) => 110 110 110 & 111 101 101 => 110 100 100,转回8进制变为644,符合下图rw-r--r--权限。

image-20250210004818889

  修改权限掩码可以让用户更精细的管理权限,但是直接使用umask命令修改时只在当前起作用,如果要永久修改需要在用户的配置文件中修改

8.权限的应用✨

文件权限:
  • rw-:可以读写文件,但不能执行。
  • r--:只能读文件。
  • rwx:可以读写并执行文件(如果是程序)。
目录权限:
  • r--:可以列出目录中的文件,但不能进入目录。
  • rw-:可以列出和修改目录中的文件,但不能进入目录。
  • r-x:可以进入目录并查看文件,但不能修改。
  • rwx:可以完全控制目录(进入、查看、修改)。

9.粘滞位✨

  当我们需要共享一个文件夹时,为了确保文件夹安全,不被共享者删除,可以设置粘滞位(只有文件夹能设置)进行保护,当设置以后,该文件夹只有所有者能够删除。

chmod +t dirname  # 设置粘滞位

image-20250210012243797


结尾👍

以上便是Linux内核与权限的全部内容,如果有疑问或者建议都可以私信笔者交流,大家互相学习,互相进步!🌹


http://www.ppmy.cn/embedded/161376.html

相关文章

Java项目: 基于SpringBoot+mybatis+maven+mysql实现的装饰工程管理系统(含源码+数据库+毕业论文)

一、项目简介 本项目是一套基于SpringBootmybatismavenmysql实现的装饰工程管理系统 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,eclipse或者idea 确保可以运行! 该系统功能完善、界面…

Docker在安装时遇到的问题(第一部分)

一、在用docker-config-manager安装yum源时出现错误 [rootlocalhost ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 已加载插件:fastestmirror, langpacks adding repo from: https://download.docker.com/linux/ce…

讯飞绘镜(ai生成视频)技术浅析(五):视频生成

讯飞绘镜(AI生成视频)是一种先进的AI视频生成技术,能够将静态的分镜画面转换为动态视频,并使画面中的元素按照一定的逻辑和动作进行动态展示。 一、讯飞绘镜视频生成技术概述 讯飞绘镜的视频生成技术主要包含以下几个核心模块: 1.视频生成模型:包括生成对抗网络(GAN)…

未来科技趋势浅析

基因编辑技术在农业育种上越来越火。这技术能改植物的基因,让它长得更好。比如,科学家用它来培育抗病虫害的作物。这样,农民就不必喷那么多农药了。还有,这种技术还能让作物适应不同的气候条件,这样即使天气不好&#…

[创业之路-288]:《产品开发管理-方法.流程.工具 》-15- 需求管理 - 需求管理常见的问题与应对之道,建立需求管理流程

15.1 需求管理常见的问题 在需求管理的各个阶段,都会面临一些常见问题。 以下是对需求收集阶段、需求整理与分析、需求分解与分配、需求实现、需求验证以及需求过程管理中常见问题的详细归纳及解决方案: 1、需求收集阶段 常见问题: 需求不明…

从零到一:我的元宵灯谜小程序诞生记

缘起:一碗汤圆引发的灵感 去年元宵节,我正捧着热腾腾的汤圆刷朋友圈,满屏都是"转发锦鲤求灯谜答案"的动态。看着大家对着手机手忙脚乱地切换浏览器查答案,我突然拍案而起:为什么不做一个能即时猜灯谜的微信…

iOS AES/CBC/CTR加解密以及AES-CMAC

感觉iOS自带的CryptoKit不好用,有个第三方库CryptoSwift还不错,好巧不巧,清理过Xcode缓存后死活下载不下来,当然也可以自己编译个Framework,但是偏偏不想用第三方库了,于是研究了一下,自带的Com…

【02】RUST项目(Cargo)

文章目录 rust项目与编译创建项目检查编译运行各级目录文件作用TODO各文件作用Cargo.tomlCargo.lockRUST项目模块系统包 Pcakagescrate模块 Modules 和 usemain.rs的例子`lib.rs`的例子路径 pathrust项目与编译 使用的是cargo最近进行代码的组织与编译功能 顺序大概如下 创建项…