Linux中SELinux、Shell简介、touch命令的应用知识总结_shell touch

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注运维)
img

正文

+ - [⛳️ SELinux的规则与概念](#_SELinux_21)
	- [⛳️ 查看SELinux](#_SELinux_29)
	- [⛳️ SELinux策略](#_SELinux_48)
	- [⛳️ SELinux模式](#_SELinux_53)
	- [⛳️ SELinux设置](#_SELinux_73)
+ [💖 Shell简介](#_Shell_81)
+ - [⛳️ Shell分类](#_Shell_100)
	- [⛳️ BASH基础](#_BASH_105)
+ [💖 touch命令的应用](#_touch_137)

在这里插入图片描述

💖 SELinux

SELinux(Security-Enhanced Linux)是美国国家安全局(NSA)对于强制访问控制的实现,是Linux历史上最杰出的新安全子系统。NSA是在Linux社区的帮助下开发了一种访问控制系统。在这种访问控制体系的限制下,进程只能访问那些在它的任务中所需要的文件。

SELinux默认安装在Fedora和Red Hat Enterprise Linux上,也可以作为其他发行版上容易安装的包得到。

  • SELinux安全增强Linux是由NSA针对计算机基础结构安全开发的一个全新的Linux安全策略机制。SELinux允许管理员更加灵活地定义安全策略。
  • SELinux是一个内核级的安全机制,从2.6内核之后集成在内核之中。
  • 主流的Linux都会集成SELinux,Red Hat默认开启SELinux。
  • SELinux是内核级的,所以对SELinux的设置需要重启系统。
⛳️ SELinux的规则与概念

所有的安全机制都是对两样东西做出限制:进程和系统资源(文件、网络套接字、系统调用等),SELinux针对这两种类型定义了两个基本概念:域(Domain)和上下文(Contest)。

  • 域用来对进程进行限制
  • 上下文用来对系统资源进行限制。
    • DAC(自主存取控制) 依据程序运行时的身份决定权限,是大部分操作系统的权限存取控制方式,也就是依据文件的own、group、other/r、w、x权限进行限制。Root有最高权限无法限制;r、w、x权限划分太粗糙,无法针对不同的进程实现限制。
    • MAC(强制存取控制) 依据条件决定是否有存取权限。可以规范个别细致的项目进行存取控制,提供完整的彻底化规范限制。可以对文件、目录、网络、套接字等进行规范,所有动作必须先得到DAC授权,然后得到MAC授权才可以存取。
    • TE (类型强制) 所有操作系统的访问控制都是以关联的客体和主体的某种类型的访问控制属性为基础的。在SELinux中,访问控制属性称为安全上下文。所有客体(文件、进程间通信通道、套接字、网络主机等)和主体(进程)都有与其关联的安全上下文,一个安全上下文由三部分组成:用户、角色和类型标识符。
⛳️ 查看SELinux

使用 ps –Z 命令可以查看进程的域,使用ls –Z可以查看文件的上下文。

查看进程域中的SELinux。

在这里插入图片描述

说明:黑线标注的部分就是SELinux,用三个冒号分隔开,形成了四个部分。

查看文件的上下文。

在这里插入图片描述

说明:黑线标识的地方也是三个冒号分隔形成的四个部分
  system_u代表的是用户。
  object_r代表的是角色。
  第三段是SELinux中最重要的信息,admin_home表示的是类型。
  最后一段s0是跟MLS、MCS相关的东西。

⛳️ SELinux策略

SELinux通过定义策略来控制哪些域能访问哪些上下文;SELinux有很多预置策略,通常不需要自定义策略(除非要对自定义服务、程序进行保护);Red Hat Linux使用预置的目标策略。

目标策略定义只有目标进程受到SELinux的限制,其他进程运行在非限制模式下,目标策略只影响网络应用程序。RHEL受限的网络服务有200个左右,常见的有dhcpd、httpd、mysqld、named、ntpd(时间伺服服务器)、squid(代理服务器)、rpcbind、syslogd等。

⛳️ SELinux模式

SELinux有如下三种工作模式。

  • 强制模式(enforcing):只要是违反策略的行动都会被禁止,并作为内核信息记录。
  • 允许模式(permissive):违反策略的行为不会被禁止,但是会提示警告信息。
  • 禁用模式(disabled):禁用SELinux,与不带SELinux系统是一样的。

通常情况下在不怎么了解SELinux时,将模式设置成disabled,这样在访问一些网络应用时就不会出问题。SELinux的主配置文件是 /etc/sysconfig/selinux,其默认设置值为 SELinux=enforcing

  • 命令getenforce可以查看当前系统SELinux的工作状态。
    getenforce
  • 命令setenforce可以设置当前系统SELinux的工作状态。
    Setenforce

使用编辑器查看SELinux的主配置文件/etc/sysconfig/selinux得到如下结果

在这里插入图片描述
在这里插入图片描述

说明:红色方框标识的部分 SELinux=enforcing 代表目前系统执行的是强制策略;SELinuxTYPE=targeted 代表当前系统遵循的是目标策略。

⛳️ SELinux设置

1、 获取当前SELinux运行状态
  getenforce
  可能返回的结果有三种:Enforcing、Permissive和Disabled。Disabled代表SELinux被禁用,Permissive代表仅记录安全警告但不阻止可疑行为, Enforcing代表记录警告且阻止可疑行为

2、 改变SELinux运行状态

💖 Shell简介

Shell:
  n.外壳; 炮弹; (贝、卵、坚果等的) 壳; (人的) 表面性格;
  vt.去壳,脱落; 炮击;
  vi.剥皮; 炮轰;

Shell在Linux中俗称“壳”,Shell处于Linux Kernel的外围,就像个“壳”一样,如下图所示:

在这里插入图片描述

Linux Kernel承担的任务是上层的服务、应用以及硬件控制等,但Linux Kernel是无法直接去控制的,也即用户是不允许直接与Linux Kernel进行通信的。这里就需要借助Shell这个“壳”。Shell所起到的是个中间媒介的作用,也就是将用户的需求转换成Linux Kernel能够识别的指令。

Shell本身只是一个感念,其中的实施是依靠图形或者命令模式去实现。

Shell是操作系统最外面的一层。Shell管理着用户与操作系统之间的交互:等待输入,向操作系统解释用户的输入,并且处理各种各样的操作系统的输出结果。Shell提供了用户与操作系统之间的通信方式,这种通信方式可以以交互方式(从键盘输入,并且可以立即得到响应),或者以Shell Script(非交互)方式执行。Shell Script是放在文件中的一串Shell和操作命令,他们可以被重复使用。本质上Shell Script是命令行,命令简单地组合到一个文件里面。

Shell基本上是一个命令解释器,类似于DOS下的command。它接收用户命令(如 ls 等),然后调用相应的应用程序。

⛳️ Shell分类

(1) 图形界面Shell(Graphical User Interface Shell,GUI Shell),图形界面的最终使用也是转换成命令行模式去执行的。例如GNOME、KDE等。

(2) 命令行式Shell(Command Line Interface Shell,CLI Shell),z最常用的命令行是GNU Bourne-Again Shell,简称 BASH,也就是Linux中常用的命令行。

⛳️ BASH基础

BASH是许多Linux平台内定的Shell,它能运行于大多数类UNIX操作系统之上,简单的说,就是我们必须通过Shell将输入的命令与内核通信,可以让内核控制硬件准确无误地工作来提高效率。

BASH本身其实也是一个命令模式下的命令,其代表的就是打开命令模式终端的意思。

1、 提示符
  Linux操作系统下的BASH提示符分为#和KaTeX parse error: Expected 'EOF', got '#' at position 10: 两种。   #̲:代表超级账户root,权限比…:代表普通账户,权限比较小

2、 结构解读

最全的Linux教程,Linux从入门到精通

======================

  1. linux从入门到精通(第2版)

  2. Linux系统移植

  3. Linux驱动开发入门与实战

  4. LINUX 系统移植 第2版

  5. Linux开源网络全栈详解 从DPDK到OpenFlow

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

第一份《Linux从入门到精通》466页

====================

内容简介

====

本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。

需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注运维)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注运维)
[外链图片转存中…(img-pWhUh0XM-1713360587232)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 20
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据引用提到的方法,有两种重置Linux CentOS 8 root密码的方法。 方法一是使用rd.break命令: 1. 重启系统并进入编辑模式,按下'e'键。 2. 在linux行末尾的空格后输入rd.break命令,并按下Ctrl+X断内核加载,进入内核交互界面。 3. 使用命令mount -o remount,rw /sysroot以读写方式挂载/sysroot。 4. 使用命令chroot /sysroot/切换文件系统,进入/sysroot子系统。 5. 使用命令passwd修改要重置密码的账户密码。 6. 使用命令touch /.autorelabel强制重置文件系统上下文。 7. 执行exit退出系统,再执行exit重置文件系统上下文。 8. 稍等片刻,系统会退回登录页面,重置密码操作成功。 方法二是使用init方法: 1. 启动系统,在GRUB2启动屏幕时按下'e'键进入编辑模式。 2. 在linux所在参数行尾部添加以下内容:将ro修改为rw,并在末尾添加init=/bin/sh。 3. 按下Ctrl+X启动到shell。 4. 运行passwd命令,并按照提示修改root密码,例如:echo "pwd" | passwd --stdin root。 5. 如果之前系统启用了SELinux,必须运行命令touch /.autorelabel,否则将无法正常启动系统。 6. 运行命令exec /sbin/init来正常启动系统,或者使用命令exec /sbin/reboot重启系统。 以上是重置Linux CentOS 8 root密码的两种方法。请根据实际情况选择其一种方法进行操作。<span class="em">1</span> #### 引用[.reference_title] - *1* [rhel8/centos8 重置root密码](https://blog.csdn.net/pxbcy/article/details/127440558)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值