centos7修复漏洞CVE-2023-38408

news2025/4/2 17:18:29

漏洞描述:

CVE-2023-38408 是 OpenSSH 组件中的一个远程代码执行(RCE)漏洞,影响 OpenSSH 代理(ssh-agent)的安全性。该漏洞被发现于 2023 年 7 月,并被标记为 高危(CVSS 评分 7.3)。

解决方法:

升级到OpenSSH 9.3p2 及以上版本

openssh-server 源码包下载

https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/

https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.9p2.tar.gz

openssl源码包下载

Downloads | OpenSSL Library

https://github.com/openssl/openssl/releases/download/openssl-3.4.1/openssl-3.4.1.tar.gz

zlib源码下载

https://www.zlib.net/

https://www.zlib.net/current/zlib.tar.gz

查看现有系统的版本

openssh-server

[root@localhost ~]#  ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017
[root@localhost ~]# 

zlib版本

[root@localhost ~]# rpm -q zlib
zlib-1.2.7-18.el7.x86_64
[root@localhost ~]# 

openssl版本

[root@localhost ~]# openssl version
OpenSSL 1.0.2k-fips  26 Jan 2017
[root@localhost ~]# 

解压安装包

[root@localhost ~]# ls
anaconda-ks.cfg  openssh-9.9p2.tar.gz  openssl-3.4.1.tar.gz  original-ks.cfg  zlib.tar.gz
[root@localhost ~]# tar -zxf openssl-3.4.1.tar.gz 
[root@localhost ~]# tar -zxf openssh-9.9p2.tar.gz 
[root@localhost ~]# tar -zxf zlib.tar.gz 
[root@localhost ~]# ls
anaconda-ks.cfg  openssh-9.9p2  openssh-9.9p2.tar.gz  openssl-3.4.1  openssl-3.4.1.tar.gz  original-ks.cfg  zlib-1.3.1  zlib.tar.gz
[root@localhost ~]# 

安装telnet服务

更换阿里云源

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

安装telnet临时登录,升级openssh会断开链接,以防万一,升级错误导致无法远程登录

执行安装

yum -y install xinetd telnetserver

重启服务,关闭防火墙

systemctl restart telnet-server
systemctl restart telnet.socket
systemctl restart xinetd
systemctl  stop firewalld

添加普通用户,默认root无法远程telnet登录

useradd admin
passwd admin


测试登录telnet

wx@wx:~$ telnet 172.16.152.129
Trying 172.16.152.129...
Connected to 172.16.152.129.
Escape character is '^]'.

Kernel 3.10.0-957.el7.x86_64 on an x86_64
localhost login: admin
Password: 
Last login: Mon Mar 31 01:22:42 from wx
[admin@localhost ~]$ 

开始升级openssh

安装zlib

切换到zlib目录

[root@localhost zlib-1.3.1]# ./configure --prefix=/usr/local/zlib

[root@localhost zlib-1.3.1]# make && make test && make install

检查版本

[root@localhost zlib-1.3.1]# grep "#define ZLIB_VERSION"  /usr/local/zlib/include/zlib.h
#define ZLIB_VERSION "1.3.1"
[root@localhost zlib-1.3.1]#

安装openssl

执行报错

[root@localhost openssl-3.4.1]# ./config --prefix=/usr/local/openssl shared zlib
Can't locate IPC/Cmd.pm in @INC (@INC contains: /root/openssl-3.4.1/util/perl /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 . /root/openssl-3.4.1/external/perl/Text-Template-1.56/lib) at /root/openssl-3.4.1/util/perl/OpenSSL/config.pm line 19.
BEGIN failed--compilation aborted at /root/openssl-3.4.1/util/perl/OpenSSL/config.pm line 19.
Compilation failed in require at /root/openssl-3.4.1/Configure line 23.
BEGIN failed--compilation aborted at /root/openssl-3.4.1/Configure line 23.
[root@localhost openssl-3.4.1]#

安装依赖

yum -y install perl-IPC-Cmd

重新编译

[root@localhost openssl-3.4.1]# ./config --prefix=/usr/local/openssl shared zlib
Configuring OpenSSL version 3.4.1 for target linux-x86_64
Using os-specific seed configuration
Created configdata.pm
Running configdata.pm
Created Makefile.in
Created Makefile
Created include/openssl/configuration.h

**********************************************************************
***                                                                ***
***   OpenSSL has been successfully configured                     ***
***                                                                ***
***   If you encounter a problem while building, please open an    ***
***   issue on GitHub <https://github.com/openssl/openssl/issues>  ***
***   and include the output from the following command:           ***
***                                                                ***
***       perl configdata.pm --dump                                ***
***                                                                ***
***   (If you are new to OpenSSL, you might want to consult the    ***
***   'Troubleshooting' section in the INSTALL.md file first)      ***
***                                                                ***
**********************************************************************
[root@localhost openssl-3.4.1]# 

amake缺少,

[root@localhost openssl-3.4.1]# make && make install
/usr/bin/perl util/mkinstallvars.pl PREFIX=. BINDIR=apps APPLINKDIR=ms LIBDIR= INCLUDEDIR=include "INCLUDEDIR=./include" ENGINESDIR=engines MODULESDIR=providers "VERSION=3.4.1" "LDLIBS=-lz -ldl -pthread " > builddata.pm
DEBUG: all keys: APPLINKDIR, BINDIR, CMAKECONFIGDIR, ENGINESDIR, INCLUDEDIR, LDLIBS, LIBDIR, MODULESDIR, PKGCONFIGDIR, PREFIX, VERSION, libdir
No value given for CMAKECONFIGDIR
No value given for PKGCONFIGDIR
No value given for libdir
DEBUG: PREFIX = . => PREFIX = /root/openssl-3.4.1
DEBUG: libdir = . => libdir = /root/openssl-3.4.1
DEBUG: BINDIR = apps => BINDIR = /root/openssl-3.4.1/apps, BINDIR_REL_PREFIX = apps
DEBUG: LIBDIR =  => LIBDIR = /root/openssl-3.4.1, LIBDIR_REL_PREFIX = 
DEBUG: INCLUDEDIR = [ include, ./include ] => INCLUDEDIR = [ /root/openssl-3.4.1/include, /root/openssl-3.4.1/include ], INCLUDEDIR_REL_PREFIX = [ include, ./include ]
DEBUG: APPLINKDIR = ms => APPLINKDIR = /root/openssl-3.4.1/ms, APPLINKDIR_REL_PREFIX = ms
DEBUG: ENGINESDIR = engines => ENGINESDIR = /root/openssl-3.4.1/engines, ENGINESDIR_REL_LIBDIR = engines
DEBUG: MODULESDIR = providers => MODULESDIR = /root/openssl-3.4.1/providers, MODULESDIR_REL_LIBDIR = providers
DEBUG: PKGCONFIGDIR = . => PKGCONFIGDIR = /root/openssl-3.4.1, PKGCONFIGDIR_REL_LIBDIR = .
DEBUG: CMAKECONFIGDIR = . => CMAKECONFIGDIR = /root/openssl-3.4.1, CMAKECONFIGDIR_REL_LIBDIR = .
/usr/bin/perl "-I." "-Mconfigdata" "-Mbuilddata" "util/dofile.pl" "-oMakefile" exporters/cmake/OpenSSLConfig.cmake.in > OpenSSLConfig.cmake
Can't locate Data/Dumper.pm in @INC (@INC contains: Configurations . /root/openssl-3.4.1/util/../Configurations /root/openssl-3.4.1/util/perl /root/openssl-3.4.1/Configurations /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 /root/openssl-3.4.1/external/perl/Text-Template-1.56/lib /root/openssl-3.4.1/util/../external/perl/Text-Template-1.56/lib) at exporters/cmake/OpenSSLConfig.cmake.in line 5.
BEGIN failed--compilation aborted at exporters/cmake/OpenSSLConfig.cmake.in line 5.
make: *** [OpenSSLConfig.cmake] Error 1
[root@localhost openssl-3.4.1]# 

执行yum install cmake -y,重新执行

[root@localhost openssl-3.4.1]# make && make install
.......
.......
.......

install doc/html/man7/provider-encoder.html -> /usr/local/openssl/share/doc/openssl/html/man7/provider-encoder.html
install doc/html/man7/provider-kdf.html -> /usr/local/openssl/share/doc/openssl/html/man7/provider-kdf.html
install doc/html/man7/provider-kem.html -> /usr/local/openssl/share/doc/openssl/html/man7/provider-kem.html
install doc/html/man7/provider-keyexch.html -> /usr/local/openssl/share/doc/openssl/html/man7/provider-keyexch.html
install doc/html/man7/provider-keymgmt.html -> /usr/local/openssl/share/doc/openssl/html/man7/provider-keymgmt.html
install doc/html/man7/provider-mac.html -> /usr/local/openssl/share/doc/openssl/html/man7/provider-mac.html
install doc/html/man7/provider-object.html -> /usr/local/openssl/share/doc/openssl/html/man7/provider-object.html
install doc/html/man7/provider-rand.html -> /usr/local/openssl/share/doc/openssl/html/man7/provider-rand.html
install doc/html/man7/provider-signature.html -> /usr/local/openssl/share/doc/openssl/html/man7/provider-signature.html
install doc/html/man7/provider-storemgmt.html -> /usr/local/openssl/share/doc/openssl/html/man7/provider-storemgmt.html
install doc/html/man7/provider.html -> /usr/local/openssl/share/doc/openssl/html/man7/provider.html
install doc/html/man7/proxy-certificates.html -> /usr/local/openssl/share/doc/openssl/html/man7/proxy-certificates.html
install doc/html/man7/x509.html -> /usr/local/openssl/share/doc/openssl/html/man7/x509.html
[root@localhost openssl-3.4.1]# 

缺少error while loading shared libraries: libssl.so.3:

[root@localhost openssl-3.4.1]#  /usr/local/openssl/bin/openssl 
/usr/local/openssl/bin/openssl: error while loading shared libraries: libssl.so.3: cannot open shared object file: No such file or directory
[root@localhost openssl-3.4.1]# ln -s /usr/local/openssl/lib64/libssl.so.3 /usr/lib64/libssl.so.3
[root@localhost openssl-3.4.1]# ln -s /usr/local/openssl/lib64/libcrypto.so.3 /usr/lib64/libcrypto.so.3
[root@localhost openssl-3.4.1]#  /usr/local/openssl/bin/openssl version
OpenSSL 3.4.1 11 Feb 2025 (Library: OpenSSL 3.4.1 11 Feb 2025)
[root@localhost openssl-3.4.1]# whereis openssl
openssl: /usr/lib64/openssl /usr/local/openssl
[root@localhost openssl-3.4.1]# openssl version
bash: openssl: command not found...
[root@localhost openssl-3.4.1]# ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
[root@localhost openssl-3.4.1]# openssl version
OpenSSL 3.4.1 11 Feb 2025 (Library: OpenSSL 3.4.1 11 Feb 2025)
[root@localhost openssl-3.4.1]# 

安装openssh

删除原有的openssh

[root@localhost openssh-9.9p2]# rpm -qa | grep openssh
openssh-clients-7.4p1-16.el7.x86_64
openssh-7.4p1-16.el7.x86_64
openssh-server-7.4p1-16.el7.x86_64
[root@localhost openssh-9.9p2]# rpm -e --nodeps openssh-server
[root@localhost openssh-9.9p2]# rpm -e --nodeps openssh-
error: package openssh- is not installed
[root@localhost openssh-9.9p2]# rpm -e --nodeps openssh
[root@localhost openssh-9.9p2]# rpm -e --nodeps openssh-clients
[root@localhost openssh-9.9p2]# rpm -qa | grep openssh
[root@localhost openssh-9.9p2]# 

切换源码目录,执行编译

./configure --prefix=/usr --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/openssl/ --with-zlib=/usr/local/zlib/ --with-ssl-engine
make && make install 

查看版本

[root@localhost openssh-9.9p2]# /usr/bin/ssh -V
OpenSSH_9.9p2, OpenSSL 3.4.1 11 Feb 2025

拷贝sshd执行文件

cp -a contrib/redhat/sshd.init /etc/init.d/sshd
[root@localhost openssh-9.9p2]# cp -a contrib/redhat/sshd.init /etc/init.d/sshd
cp: overwrite ‘/etc/init.d/sshd’? y
[root@localhost openssh-9.9p2]# /etc/init.d/sshd 
Usage: /etc/init.d/sshd {start|stop|restart|reload|condrestart|status}
[root@localhost openssh-9.9p2]# /etc/init.d/sshd  start
Reloading systemd:                                         [  OK  ]
Starting sshd (via systemctl):                             [  OK  ]
[root@localhost openssh-9.9p2]# systemctl status sshd 
● sshd.service - SYSV: OpenSSH server daemon
   Loaded: loaded (/etc/rc.d/init.d/sshd; bad; vendor preset: enabled)
   Active: active (running) since Mon 2025-03-31 02:17:16 PDT; 9s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 124507 ExecStart=/etc/rc.d/init.d/sshd start (code=exited, status=0/SUCCESS)
 Main PID: 124515 (sshd)
    Tasks: 1
   CGroup: /system.slice/sshd.service
           └─124515 sshd: /usr/sbin/sshd [listener] 0 of 10-100 startups

Mar 31 02:17:16 localhost.localdomain systemd[1]: Starting SYSV: OpenSSH server daemon...
Mar 31 02:17:16 localhost.localdomain sshd[124507]: /sbin/restorecon:  lstat(/etc/ssh/ssh_host_dsa_key.pub) failed:  No such file or directory
Mar 31 02:17:16 localhost.localdomain sshd[124515]: Server listening on 0.0.0.0 port 22.
Mar 31 02:17:16 localhost.localdomain sshd[124515]: Server listening on :: port 22.
Mar 31 02:17:16 localhost.localdomain sshd[124507]: Starting sshd:[  OK  ]
Mar 31 02:17:16 localhost.localdomain systemd[1]: Started SYSV: OpenSSH server daemon.
[root@localhost openssh-9.9p2]# ll /etc/ssh/ssh_host_dsa_key.pub
ls: cannot access /etc/ssh/ssh_host_dsa_key.pub: No such file or directory
[root@localhost openssh-9.9p2]#

修改配置文件添加root远程登录

vi /etc/ssh/sshd_config

PermitRootLogin yes

登录失败,检查日志输出为

[root@localhost openssh-9.9p2]# systemctl status sshd 
● sshd.service - SYSV: OpenSSH server daemon
   Loaded: loaded (/etc/rc.d/init.d/sshd; bad; vendor preset: enabled)
   Active: active (running) since Mon 2025-03-31 02:22:49 PDT; 38s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 124672 ExecStop=/etc/rc.d/init.d/sshd stop (code=exited, status=0/SUCCESS)
  Process: 124686 ExecStart=/etc/rc.d/init.d/sshd start (code=exited, status=0/SUCCESS)
 Main PID: 124694 (sshd)
    Tasks: 3
   CGroup: /system.slice/sshd.service
           ├─124694 sshd: /usr/sbin/sshd [listener] 1 of 10-100 startups
           ├─124705 sshd-session: root [priv]
           └─124706 sshd-session: root [net]

Mar 31 02:22:49 localhost.localdomain sshd[124694]: Server listening on 0.0.0.0 port 22.
Mar 31 02:22:49 localhost.localdomain sshd[124694]: Server listening on :: port 22.
Mar 31 02:22:49 localhost.localdomain sshd[124686]: Starting sshd:[  OK  ]
Mar 31 02:22:49 localhost.localdomain systemd[1]: Started SYSV: OpenSSH server daemon.
Mar 31 02:23:02 localhost.localdomain sshd-session[124628]: Connection closed by authenticating user admin 172.16.152.1 port 47766 [preauth]
Mar 31 02:23:04 localhost.localdomain sshd-session[124702]: error: Could not get shadow information for admin
Mar 31 02:23:04 localhost.localdomain sshd-session[124702]: Failed password for admin from 172.16.152.1 port 46948 ssh2
Mar 31 02:23:16 localhost.localdomain sshd-session[124702]: Connection closed by authenticating user admin 172.16.152.1 port 46948 [preauth]
Mar 31 02:23:25 localhost.localdomain sshd-session[124705]: error: Could not get shadow information for root
Mar 31 02:23:25 localhost.localdomain sshd-session[124705]: Failed password for root from 172.16.152.1 port 38126 ssh2
[root@localhost openssh-9.9p2]# 

临时关闭selinux,重新尝试登录成功

sudo setenforce 0

登录成功

wx@wx:~$ ssh admin@172.16.152.129
admin@172.16.152.129's password: 
Last login: Mon Mar 31 02:31:33 2025 from 172.16.152.1
[admin@localhost ~]$ 

使用telnet测试ssh版本

wx@wx:~$ telnet 172.16.152.129 22
Trying 172.16.152.129...
Connected to 172.16.152.129.
Escape character is '^]'.
SSH-2.0-OpenSSH_9.9

配置sshd服务开机自启动

[root@localhost openssh-9.9p2]# systemctl enable sshd
sshd.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig sshd on
[root@localhost openssh-9.9p2]# 

升级成功

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

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

相关文章

uniapp微信小程序封装navbar组件

一、 最终效果 二、实现了功能 1、nav左侧返回icon支持自定义点击返回事件&#xff08;默认返回上一步&#xff09; 2、nav左侧支持既显示返回又显示返回首页icon 3、nav左侧只显示返回icon 4、nav左侧只显示返回首页icon 5、nav左侧自定义left插槽 6、nav中间支持title命名 7…

系统思考与心智模式

我们的生命为什么越来越长&#xff1f;因为有了疫苗&#xff0c;有了药物。可这些是怎么来的&#xff1f;是因为我们发现了细菌的存在。但在很久以前&#xff0c;医生、助产士甚至都不洗手——不是他们不负责&#xff0c;而是根本不知道“细菌”这回事。那细菌是怎么被发现的&a…

数据库--数据库设计

目录&#xff1a; 1.数据库设计和数据模型 2.概念结构设计&#xff1a;E-R模型 3.逻辑结构设计&#xff1a;从E-R图到关系设计 4.数据库规范化设计理论 5.数据库规范化设计实现 1.数据库设计和数据模型 数据库设计会影响数据库自身和上层应用的性能。 一个好的数据库设计可以提…

[Mac]利用hexo-theme-fluid美化个人博客

接上文,使用Fluid美化个人博客 文章目录 一、安装hexo-theme-fluid安装依赖指定主题创建「关于页」效果展示 二、修改个性化配置1. 修改网站设置2.修改文章路径显示3.体验分类和标签4.左上角博客名称修改5.修改背景图片6.修改关于界面 欢迎大家参观 一、安装hexo-theme-fluid 参…

黑盒测试的场景法(能对项目业务进行设计测试点)

定义: 通过运用场景来对系统的功能点或业务流程的描述&#xff0c;设计用例遍历场景&#xff0c;验证软件系统功能的正确性从而提高测试效果的一种方法。 场景法一般包含基本流和备用流。 基本流:软件功能的正确流程&#xff0c;通常一个业务只存在一个基本流且基本流有一个…

通过Anaconda Prompt激活某个虚拟环境并安装第三方库

打开 Anaconda Prompt 在Windows中&#xff0c;可以通过开始菜单搜索 Anaconda Prompt 来打开。&#xff08;红色箭头指向的地方。&#xff09; 激活虚拟环境 输入以下命令来激活您的虚拟环境&#xff08;假设虚拟环境名称为 myenv&#xff09;&#xff1a; conda activate…

全长约8.3公里!宁波象山港跨海大桥南中塔柱云端合龙

快科技3月31日消息&#xff0c;据报道&#xff0c;由中国交建二航局承建的宁波象山港跨海大桥顺利完成南中塔柱合龙施工&#xff0c;标志着这一重大交通工程取得阶段性突破。 这座连接宁波鄞州区与象山县的跨海通道全长8.3公里&#xff0c;其标志性的南主塔采用创新"钻石…

使用 2 端口探头测量 40 uOhm(2000 安培)PDN 的挑战 – 需要多少 CMRR?

部分 1 / 3 本文是 3 部分系列的第一部分&#xff1a; 第 2 部分 - 测量结果&#xff01; 第 3 部分 - 使用另一台 VNA 的测量结果 介绍 我们大多数人都知道 2 端口测量中的接地回路。我们大多数人也都知道&#xff0c;我们需要引入接地回路隔离器来纠正错误。如果没有&…

蓝桥杯——统计子矩阵

解法&#xff1a;二维前缀和双指针 代码&#xff1a; #include <iostream> using namespace std; typedef long long ll; ll prefix[505][505], a[250010]; int main() {ll n, m, k, ans 0; cin >> n >> m >> k;for(int i 1; i < n; i)for(int …

吾爱破解安卓逆向学习笔记(4p)

学习目标&#xff0c;了解安卓四大组件&#xff0c;activity生命周期&#xff0c;同时了解去除部分广告和更新提示。 广告类型 1.启动页广告 2.更新广告 3.横幅广告 安卓四大组件 组件描述Activity(活动)在应用中的一个Activity可以用来表示一个界面&#xff0c;意思可以…

stm32第十天外部中断和NVIC讲解

一&#xff1a;外部中断基础知识 1.STM32外部中断框架 中断的概念&#xff1a;在主程序运行过程中&#xff0c;出现了特点的中断触发条件&#xff0c;使得CPU暂停当前正在运行的程序&#xff0c;转而去处理中断程序&#xff0c;处理完成后又返回原来被暂停的位置继续运行 1&…

26考研——线性表_ 线性表的链式表示_单链表(2)

408答疑 文章目录 三、 线性表的链式表示单链表概念单链表的结构头结点 单链表上基本操作的实现单链表的初始化带头结点和不带头结点的初始化操作注意 求表长操作按序号查找结点按值查找表结点插入结点操作扩展&#xff1a;对某一结点进行前插操作 删除结点操作扩展&#xff1a…

MATLAB 控制系统设计与仿真 - 31

二次型最优控制 考虑到系统如果以状态空间方程的形式给出&#xff0c;其性能指标为&#xff1a; 其中F,Q,R是有设计者事先选定。线性二次最优控制问题简称LQ(Linear Quadractic)问题,就是寻找一个控制,使得系统沿着由指定初态出发的相应轨迹,其性能指标J取得最小值。 LQ问题分…

蓝桥杯15届JAVA_A组

将所有1x1转化为2x2 即1x1的方块➗4 然后计算平方数 记得-1 2 import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter;public class Main{static BufferedReader in new BufferedReader(new In…

deepseek v3 0324实现工作流编辑器

HTML 工作流编辑器 以下是一个简单的工作流编辑器的HTML实现&#xff0c;包含基本的拖拽节点、连接线和可视化编辑功能&#xff1a; <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewp…

20250331-智谱-沉思

背景 收到GLM沉思的消息&#xff0c;立马试用下。感觉真的太及时了。 &#xff08;背景&#xff1a;为了客户的需求“AI辅助写作”实验了2款开源workflow&#xff0c;2款在线workflow&#xff0c;好几款多智能体框架后&#xff0c;心中无底之际。。。&#xff09; 1. GLM(开启…

Java EE(17)——网络原理——IP数据报结构IP协议解析(简述)

一.IP数据报结构 (1)版本&#xff1a;指明协议的版本&#xff0c;IPv4就是4&#xff0c;IPv6就是6 (2)首部长度&#xff1a;单位是4字节&#xff0c;表示IP报头的长度范围是20~60字节 (3)8位区分服务&#xff1a;实际上只有4位TOS有效&#xff0c;分别是最小延时&#xff0c;最…

26考研|高等代数:线性空间

线性空间这一章在整个高等代数学习过程中是非常精华的部分&#xff0c;在学习这一章的过程中会有部分的概念较为抽象&#xff0c;一定要抓紧抓牢对于概念的理解&#xff0c;反复阅读与感受&#xff0c;同时也可以根据已知的解析几何中介绍的二维空间或者三维空间进行类推比较&a…

【Linux】进程间通信(IPC)-- 无名管道、命名管道

IPC机制 实现进程间通信 在多个进程间传输数据或共享信息的机制。 数据交换&#xff0c;共享资源&#xff0c;进程同步&#xff0c;消息传递。 IPC实现原理&#xff1a;通信进程能够访问相同的内存区域。 方法&#xff1a; 管道&#xff1a;无名管道pipe、命名管道FIFO S…

每日一题-力扣-2278. 字母在字符串中的百分比 0331

字母在字符串中的百分比求解方案 | 力扣 2278 题解 问题描述 给定一个字符串 s 和一个字母 letter&#xff0c;我们需要计算 letter 在 s 中出现的百分比&#xff0c;并将结果向下取整。例如&#xff0c;如果字符串是 "foobar"&#xff0c;字母是 "o"&…