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

news2024/12/28 18:45:11

在这里插入图片描述

✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。
🍎个人主页:Java Fans的博客
🍊个人信条:不迁怒,不贰过。小知识,大智慧。
💞当前专栏:Java案例分享专栏
✨特色专栏:国学周更-心性养成之路
🥭本文内容:Linux中SELinux、Shell简介、touch命令的应用知识总结

文章目录

    • 💖 SELinux
      • ⛳️ SELinux的规则与概念
      • ⛳️ 查看SELinux
      • ⛳️ SELinux策略
      • ⛳️ SELinux模式
      • ⛳️ SELinux设置
    • 💖 Shell简介
      • ⛳️ Shell分类
      • ⛳️ BASH基础
    • 💖 touch命令的应用

在这里插入图片描述

💖 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提示符分为#和$两种。
  #:代表超级账户root,权限比较大
  $:代表普通账户,权限比较小

2、 结构解读

在这里插入图片描述

  root代表目前登录的是root账户,zhangyan代表目前使用的这台计算机的主机名称,@代表使用root账户登录到zhangyan这台主机。

3、 BASH命令的组成
  BASH命令的一般结构:
$ command [ [-]option(s)] [option argument(s)] [command argument(s)]
  1、$:计算机提示符,代表的是使用普通账户登录系统。
  2、command:对shell而言正确的Linux命令,BASH命令均为小写。
  3、[-option(s)]:定制命令动作的一个或多个修饰符号,是BASH的命令选项。
  4、[option argument(s)]:定制命令选项的一个或多个修饰符号,是命令选项修饰。
  5、[command argument(s)]:受命令影响的一个或多个对象,命令对象。

  注意:以上各部分用空格分开。command、option、option argument和command argument,但在option或option argument之间是不需要空格的。多个option或option argument的顺序是不要紧的,也就是和顺序无关。在option和option argument间的空格是可选的。

在这里插入图片描述

  ls为command,-al为-option(s)。

💖 touch命令的应用

  touch的一般用法是用来创建一个新文件。同时,touch还可以用来修改文件的时间戳。

和时间戳有关的三个时间:
  访问时间access time,简称为 atime:一个文件的数据最后一次被访问的时间。例如,显示一个文件的内容或者运行一个shell脚本会更新文件的atime。可以用 ls –lu 命令查看。

  更改时间status time,简称为 ctime;在UNIX中基本无法知道一个文件的精确创建时间。更改时间是指文件或目录的属性(所有者、权限等)被更改的时间。ctime在文件的内容改变的时候也会改变。如果一个文件需要备份的话,dump命令需要用到ctime。可以用 ls –lc 命令来查看ctime。

  修改时间modification time,简称为 mtime:文件的目前内容最后被修改的时间。这是在一个长目录列表中显示的时间。

总结:
  文件的atime是在读取文件或者执行文件时更改的;
  文件的mtime是在写入文件时随文件内容的更改而更改的;
  文件的ctime是在写入文件,更改所有者、权限或链接设置时随inode的内容更改而更改的。

  名称:touch
  使用权限:所有使用者
  使用方式:touch [option] filename

参数说明
-a仅修改访问时间。
-r修改文件的时间为指定文件的日期时间。
-d指定文件日期时间为yymmdd。
-t指定文件日期时间为yymmddhhmm。
-c:仅改变修改时间,如果文件不存在则创建。
-m仅修改mtime。

  说明:如果不加参数后面直接跟上filename,则判断文件是否存在,如果存在则改变其时间,如果不存在则创建一个0字节的空文件。如果加上相应参数,则为按照参数的设置修改时间戳的作用。

在这里插入图片描述


  码文不易,本篇文章就介绍到这里,如果想要学习更多Java系列知识点击关注博主,博主带你零基础学习Java知识。与此同时,对于日常生活有困扰的朋友,欢迎阅读我的第四栏目:《国学周更—心性养成之路》,学习技术的同时,我们也注重了心性的养成。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/189947.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spark SQL的生命旅程之底层解析

一、内容提要一条SQL语句是如何被解析的?一条SQL是如何转换为代码被机器执行的?SQL从逻辑计划到物理计划的转换经历了怎样的优化?二、Antlr4Antlr4 Java编写的强大的语法解析生成器# 命令行使用方式 curl -O https://raw.githubusercontent.c…

【MyBatis持久层框架】核心配置文件详细解读

文章目录1. 前言2. 多环境配置3. 类型别名4. 对象工厂5. 总结1. 前言 前面我们在使用 MyBatis 开发时,编写核心配置文件替换 JDBC 中的连接信息,解决了 JDBC 硬编码的问题。其实,MyBatis 核心配置文件中还可以配置很多的内容。 MyBatis 的配…

微信小程序java+nodejs+vue校园美食点餐评论餐饮配送系统

开发语言:Java 小程序前端框架:uniapp 小程序运行软件:微信开发者 后端技术:Ssm(SpringSpringMVCMyBatis)vue.js 后端开发环境:idea/eclipse 数据库:mysql 基于校园餐饮配送小程序的设计基于现有的手机,可以实现首页、个人中心、学…

[JavaWeb]JS

目录1.JavaScript特点2. script 标签写JS代码2.1 script 标签中写JS代码2.2 使用 script 标签引入 JS 文件2.3 使用 js 的两种方式,是二选一,不能混用3. 查看 JS 错误信息3.1 chrome 浏览器查看错误信息3.2 Microsoft Edge浏览器查看错误信息4.JS变量4.1 var定义变量4.2 JavaSc…

Go 基础Interface

Go Interface 今天学习下Golang语言中Interface基本语法与使用,通过代码示例了解Go编程中的接口及其实现。跟Java语言类似,在Go编程中,开发者可以使用接口来存储一组没有实现的方法。也就是说,接口的方法不会有方法体。 接口定义…

谷歌正开发苹果AirTag的竞品,但苹果Find My需求强劲

据安卓爆料专家 Mishaal Rahman 的消息,谷歌似乎正在开发苹果 AirTag 的竞品。 从图中可以看到,谷歌 Fast Pair 蓝牙快速配对中,出现了一个名为“Locator tag(定位器标签)”的分类,这一类别此前没有出现过…

RXXW300/汇川MD500变频器MODBUS通信应用指导手册

本篇博客属于工具文档篇,方便大家查询通信相关的参数和MODBUS地址,有关PLC的MODBUS通信大家可以参看下面的文章链接: PLC MODBUS通信优化、提高通信效率避免权限冲突(程序+算法描述)_RXXW_Dor的博客-CSDN博客_modbus读写冲突MODBUS通讯非常简单、应用也非常广泛,有些老生…

51单片机多路电压检测数码管显示( proteus仿真+程序+报告+讲解视频)

51单片机多路电压检测数码管显示演示视频1.主要功能:2.仿真3. 程序4.设计报告系统需求及方案设计5. 设计资料内容清单51单片机多路电压检测数码管显示( proteus仿真程序报告讲解视频)仿真图proteus 7.8及以上 程序编译器:keil 4/keil 5 编程…

MySQL从入门到精通(第二篇):MySQL的底层原理及其结构,结合多篇文章

Mysql进阶一、事务ACIDAUTOCOMMIT二、并发一致性问题1. 修改丢失三、封锁1. 封锁粒度2. 封锁类型读写锁意向锁3. 封锁协议1. 一级封锁协议2. 二级封锁协议3. 三级封锁协议4. 两段锁协议a. 概念b. 例子c. 两段锁是可串行化的充分条件d. 两段锁与死锁四、MySQL系统变量1. 查看系统…

苏嵌实训——day18

文章目录一 wirkeshark 抓包工具1.1 软件介绍1.2 软件安装1.3 wireshark工具的使用1.4 TCP三次握手和四次挥手二 TCP循环服务器2.1 IO多路复用2.2 使用select实现IO多路复用2.3 epoll一 wirkeshark 抓包工具 1.1 软件介绍 wireshark用于抓取经过我当前主机网卡的所有的数据包…

ffmpeg解封、解码实战

1 概述 2 解封装相关函数接口 avformat_alloc_context();负责申请一个AVFormatContext结构的内存,并进行简单初始化 avformat_free_context();释放该结构里的所有东西以及该结构本身 avformat_close_input();关闭解复用器。 avformat_open_input();打开输入视频文件 avformat_…

在elasticsearch中简单的使用script_fields

文章目录1、背景2、准备数据2.1 mapping2.2 插入数据3、案例3.1 格式化性别 1-男 2-女 -1-未知 如果不存在sex字段,则显示-- 其余的显示 **3.1.1 dsl3.1.2 java代码3.1.3 运行结果3.2 判断用户是否有某个爱好3.2.1 dsl3.2.2 java代码3.2.3 运行结果3.3 统计湖北的用…

Oracle 程序被编译后自动增加了AUTHID CURRENT_USER授权

目录 背景 原因: 解决方法 背景 今天遇到一个大坑,新建的一个数据库用户调用apps下的程序包,程序反馈未授权无法使用。 但是DBA确认已经给了授权。 查询授权表也是有正确授权的,但就是显示无效授权。 后来debug进去&#x…

外汇k线图经典图解:穿头破脚

从事外汇、黄金交易怎么能不懂K线图,学看K线图怎么能不把一些经典图解铭记心中呢?它们就好比字典和工具书,当投资者在解读行情时遇到任何困惑,都能从这些经典中得到指引,从而指明自己的投资方向。今天,小编…

java ssm校园二手书交易平台idea

该网站从实际运用的角度出发,运用了计算机网站设计、数据库等相关知识,网络和Mysql数据库设计来实现的,网站主要包括学生注册、学生登录、浏览图书、搜索图书、查看图书并进行购买,对购买的图书进行确认收货、退款退货、查看个人信…

Elasticsearch连续剧之实战篇Java操作es

作者:狮子也疯狂 专栏:《es》 坚持做好每一步,幸运之神自然会驾凌在你的身上 目录一、🐇前言二、🐇原生JAVA操作ES_搭建项目Ⅰ、创建项目Ⅱ、索引操作2.1 创建空索引2.2 给索引添加结构2.3 删除索引Ⅲ、文档操作3.1 新…

vCloud删除OVDC网络时提示被vApp网络使用无法删除

环境 VMware Cloud Director 版本:10.3.2.19375051 现象 在vCloud租户视图删除OVDC网络,提示被vApp网络使用,无法删除。此时通过查看vApp发现并没有残留vApp网络。 解决办法 1、登录vCloud数据库: 登录方法可以参考:VMware Cloud Director数据库操作 2、查逻辑网络: …

CAN接口电路设计

CAN总线的全称是控制器局域网络,主要应用在汽车电子和工业控制领域。和485总线一样,CAN总线也是一种半双工的通信。一条CAN总线最多能接110个节点它最高速率能到1Mbps,最远传输距离能到10KMCAN总线有两个信号,一个是CANH&#xff…

如何在 Linux 命令行中优雅的格式化输出 xml,记住这三种方法!

xml(可扩展标记语言)也是一种人类可读的标记语言,但是如同 json 文件一样,没有缩进格式(或者压缩)的 xml 文件,读起来那是挺头疼的。 首先来看一下我们这篇文章要达到的目的,如下图…

代码随想录训练营第十七天|110.平衡二叉树 ● 257. 二叉树的所有路径 ● 404.左叶子之和

110.平衡二叉树 看完题后的思路 int[] f(root)if rootnull return [true,0]left[]f(root.left) if(!left[0]){return [false,-1]} right[]f(root.right) if(!right[0]){return [false,-1]} return[true,math.max(left[1],right[1])1] 思路 上面的过程弄复杂了,其…