Kafka SASL/PLAIN介绍

文章目录

  • Kafka SASL/PLAIN介绍
  • 1. SASL/PLAIN 简介
  • 2. 配置步骤
    • (1)Kafka 服务器端配置
    • (2)Kafka 客户端配置
    • (3)测试连接
  • 3. 认证过程
    • 3.1 SASL/PLAIN 认证工作原理
    • 3.2 认证过程描述
  • 4. 安全性考虑
    • 4.1 SASL/PLAIN 的安全问题
    • 4.2 保障 SASL/PLAIN 安全性的方案
    • 4.3 SASL/PLAIN 的安全性处理场景
  • 5. SASL/PLAIN适用场景介绍
    • 5.1 简单场景中的认证需求
      • (1)内部环境或测试环境
      • (2)低安全性要求的应用场景
    • 5.2 与其他认证方式结合使用
    • 5.3 与应用层身份验证配合
    • 5.4 外部系统集成
  • 6. 总结

Kafka SASL/PLAIN介绍

Kafka SASL/PLAIN 是一种基于简单用户名和密码的身份验证方式,通常用于保护 Kafka 集群的访问安全。它是 Kafka 中的 SASL(Simple Authentication and Security Layer)认证机制之一。使用 SASL/PLAIN 时,客户端和服务器之间通过简单的明文用户名和密码进行身份验证。

1. SASL/PLAIN 简介

SASL(Simple Authentication and Security Layer)是一个身份验证框架,允许应用程序协议独立地进行身份验证。Kafka 支持多种 SASL 机制,其中 SASL/PLAIN 就是一种非常简单的实现方式。

  • SASL/PLAIN 的工作原理是,客户端通过用户名和密码向 Kafka 服务器发送身份验证请求。Kafka 服务器通过配置的身份验证方式(通常是基于 JAAS 配置)验证客户端提供的用户名和密码。

  • 安全性SASL/PLAIN 本身并不加密密码或任何消息内容,它仅用于身份验证。因此,它最好与 SSL/TLS 结合使用,以保证传输过程中的安全性。

2. 配置步骤

(1)Kafka 服务器端配置

在 Kafka 服务器端,需要启用 SASL/PLAIN 身份验证机制。配置文件中要指定使用 SASL 认证,并配置 SASL/PLAIN 所需的 JAAS 配置文件。

  1. 编辑 Kafka 服务器配置(server.properties

    启用 SASL/PLAIN 认证,并将其与 SSL 或 PLAINTEXT 一起使用(具体使用什么协议取决于你的网络要求)。比如:

    listeners=SASL_PLAINTEXT://0.0.0.0:9092
    listener.security.protocol=SASL_PLAINTEXT
    sasl.mechanism=PLAIN
    sasl.enabled.mechanisms=PLAIN
    security.inter.broker.protocol=SASL_PLAINTEXT
    
  2. 配置 JAAS 配置文件

    Kafka 需要一个 JAAS 配置文件来指定如何验证客户端的用户名和密码。该文件通常位于 $KAFKA_HOME/config/kafka_server_jaas.conf,其内容如下:

    KafkaServer {
       org.apache.kafka.common.security.plain.PlainLoginModule required
       username="kafka-server"
       password="server-password"
       user_kafka="kafka-password";
    };
    
    • usernamepassword 是 Kafka 服务器本身的认证信息。
    • user_kafkakafka-password 是授权的用户。
  3. 在启动 Kafka 服务器时指定 JAAS 配置文件

    启动 Kafka 服务器时需要告诉它使用哪个 JAAS 配置文件。使用以下命令启动 Kafka 服务器时指定 JAAS 配置文件:

    KAFKA_OPTS="-Djava.security.auth.login.config=/path/to/kafka_server_jaas.conf" bin/kafka-server-start.sh config/server.properties
    

(2)Kafka 客户端配置

在 Kafka 客户端(生产者或消费者)中,也需要配置 SASL/PLAIN 认证信息。客户端需要提供正确的用户名和密码,以便进行身份验证。

  1. 编辑 Kafka 客户端配置(producer.propertiesconsumer.properties

    配置如下:

    security.protocol=SASL_PLAINTEXT
    sasl.mechanism=PLAIN
    sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \
       username="kafka-client" \
       password="client-password";
    
    • usernamepassword 是客户端认证所需的用户名和密码。
  2. 使用 Java 客户端时,还需要在启动时指定 JAAS 配置文件:

    KAFKA_OPTS="-Djava.security.auth.login.config=/path/to/client_jaas.conf" java -jar kafka-client.jar
    

    client_jaas.conf 中,配置类似于以下内容:

    KafkaClient {
       org.apache.kafka.common.security.plain.PlainLoginModule required
       username="kafka-client"
       password="client-password";
    };
    

(3)测试连接

在完成 Kafka 服务器和客户端的配置后,您可以测试生产者或消费者是否可以成功连接到 Kafka 集群。

例如,使用命令行生产者来测试 SASL/PLAIN 认证:

bin/kafka-console-producer.sh --broker-list kafka-server:9092 --topic test --producer.config /path/to/producer.properties

如果配置正确,生产者将能够连接到 Kafka 集群并发送消息。

3. 认证过程

Kafka SASL/PLAIN 认证过程是 Kafka 客户端和服务器之间通过用户名和密码进行身份验证的一种机制。在这种机制下,Kafka 客户端需要在连接 Kafka 集群时,提供有效的用户名和密码,而 Kafka 服务器将验证这些凭证。

3.1 SASL/PLAIN 认证工作原理

SASL(Simple Authentication and Security Layer)是一个框架,允许应用程序协议独立地进行身份验证。SASL/PLAIN 是一种简单的认证机制,它使用 明文用户名和密码 进行身份验证。具体过程如下:

  1. 客户端请求:Kafka 客户端(如生产者或消费者)向 Kafka 服务器发起连接请求,并在连接请求中声明将使用 SASL/PLAIN 机制进行认证。

  2. 发送认证请求:客户端在与 Kafka 服务器的初步通信中,使用 SASL/PLAIN 发送认证请求,包含用户名和密码。这些信息是通过 SASL 握手进行传递的。

  3. Kafka 服务器验证:Kafka 服务器通过配置的 JAAS 文件,验证客户端提供的用户名和密码是否正确。JAAS 文件中保存了 Kafka 服务器的认证信息和用户凭证。

  4. 认证结果:如果用户名和密码验证成功,Kafka 服务器允许客户端继续进行通信。否则,连接被拒绝,客户端收到认证失败的错误。

  5. 数据传输:认证完成后,客户端和服务器之间的通信可以正常进行。

3.2 认证过程描述

假设我们有一个 Kafka 集群,客户端要连接时需要进行 SASL/PLAIN 认证。以下是认证过程的详细步骤:

步骤 1:客户端发起连接请求
客户端向 Kafka 服务器发起连接,指定使用 SASL/PLAIN 认证机制。客户端的请求包含用户名和密码(例如:kafka-clientclient-password)。

步骤 2:Kafka 服务器验证
Kafka 服务器接收到认证请求后,从其 JAAS 配置文件中查找与客户端提供的用户名匹配的条目。如果用户名和密码验证成功,Kafka 服务器会返回认证成功的响应。

步骤 3:客户端与 Kafka 服务器建立连接
认证成功后,客户端可以通过 SASL 连接到 Kafka 服务器并发送消息。此时,客户端可以开始发布消息或订阅主题。

步骤 4:认证失败处理
如果客户端提供的用户名或密码不正确,Kafka 服务器将拒绝连接,并返回认证失败的错误信息。例如:

Error: Authentication failed: [AuthError: SASL authentication failed for user: kafka-client]

步骤 5:日志分析
Kafka 和客户端日志中会记录认证过程的详细信息。Kafka 服务器日志通常包含类似以下的信息:

[INFO] - SASL authentication failed for user: kafka-client
[INFO] - Authentication failure for client: kafka-client

4. 安全性考虑

Kafka SASL/PLAIN 安全性注意事项主要涉及以下几个方面:认证的安全性、数据传输的加密、密码保护、以及对潜在攻击的防范。SASL/PLAIN 本身存在一些安全隐患,特别是在传输过程中,用户名和密码是以明文方式发送的。因此,在使用 SASL/PLAIN 时,需要格外小心如何保障传输通道的安全以及如何避免信息泄漏。

4.1 SASL/PLAIN 的安全问题

  1. 明文密码传输

    • SASL/PLAIN 使用的是明文用户名和密码进行认证。尽管用户名和密码可能存储在 Kafka 配置文件中,但这些信息在客户端和服务器之间的传输过程中是没有加密的。
    • 如果不加以保护,恶意的攻击者可能会截取传输中的数据包,从而获得明文的用户名和密码,导致身份验证信息泄露。
  2. 中间人攻击(MITM)

    • 在没有加密的网络环境中,SASL/PLAIN 可能容易受到 中间人攻击(MITM)。攻击者能够拦截并篡改客户端与 Kafka 服务器之间的通信流量,从而获取认证信息或修改数据。
    • 由于没有加密保护,数据流中传输的用户名和密码可能在传输过程中被泄露。
  3. 无法验证服务器身份

    • 使用 SASL/PLAIN 认证时,客户端无法验证服务器的身份,因此容易受到 伪造 Kafka 服务器 的攻击。攻击者可以伪造一个 Kafka 服务器并窃取用户的认证信息。

4.2 保障 SASL/PLAIN 安全性的方案

为了解决以上安全问题,在使用 SASL/PLAIN 时,可以采取以下措施:

(1)使用 SSL/TLS 加密通信

  • 为了保护传输中的数据免受窃听和篡改,强烈建议将 SASL/PLAIN 配合 SSL/TLS 一起使用。SASL_SSL 可以确保 Kafka 客户端与服务器之间的通信加密,使认证信息和所有数据都得到加密保护。

  • 配置 SASL_SSL

    1. 在 Kafka 服务器端配置文件 server.properties 中启用 SASL_SSL

      listeners=SASL_SSL://0.0.0.0:9093
      listener.security.protocol=SASL_SSL
      sasl.mechanism=PLAIN
      sasl.enabled.mechanisms=PLAIN
      security.inter.broker.protocol=SASL_SSL
      ssl.keystore.location=/path/to/kafka.server.keystore.jks
      ssl.keystore.password=password
      ssl.key.password=password
      ssl.truststore.location=/path/to/kafka.server.truststore.jks
      ssl.truststore.password=password
      
    2. 在客户端配置文件中,也要使用 SASL_SSL

      security.protocol=SASL_SSL
      sasl.mechanism=PLAIN
      sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \
         username="kafka-client" \
         password="client-password";
      ssl.truststore.location=/path/to/kafka.client.truststore.jks
      ssl.truststore.password=password
      
  • 好处

    • 使用 SASL_SSL 会加密整个传输通道,确保 认证信息和所有数据在网络中不会被明文传输
    • 即使攻击者能够拦截网络流量,他们也无法解密通信内容,因为传输是加密的。

(2)启用客户端证书验证

  • 为了进一步增强安全性,可以启用 客户端证书验证。这种方式要求客户端提供有效的证书进行身份验证。

  • 配置时,Kafka 服务器需要检查客户端的证书,以确保只有授权的客户端能够连接。此时不仅是用户名和密码进行身份验证,还要求客户端提供数字证书,这样可以防止未授权的客户端访问。

(3)验证 Kafka 服务器身份

  • 客户端可以通过配置 Kafka 服务器的证书 来验证 Kafka 服务器的身份。这样可以防止客户端连接到伪造的 Kafka 服务器。

  • 使用 SSL 验证服务器身份

    • 客户端配置文件应包含服务器的 truststore 配置,信任由 Kafka 服务器提供的证书:

      ssl.truststore.location=/path/to/kafka.server.truststore.jks
      ssl.truststore.password=password
      
    • 这将确保客户端只与身份验证通过的 Kafka 服务器通信,而不会连接到恶意的伪造服务器。

(4)定期更新用户名和密码

  • 即使使用了加密通信通道,密码泄露的风险依然存在。因此,应该定期更换用户名和密码,特别是在发生潜在的安全事件或密码泄露时。

  • 密码管理

    • 使用专门的密码管理工具来存储和管理密码,避免将密码硬编码在配置文件中。
    • 通过 Kafka 集群的管理工具(如 Kafka Manager)或使用自动化工具(如 Vault)定期更新凭证。

(5)使用更安全的认证机制

  • SASL/PLAIN 虽然简单且易于配置,但它的安全性较弱。如果可能,考虑使用更为安全的认证机制,如 SASL/GSSAPI(Kerberos),它提供更强的认证和加密保护。SASL/GSSAPI 使用基于票证的身份验证机制,具有较强的防篡改和防伪造的能力。

4.3 SASL/PLAIN 的安全性处理场景

案例 1:使用 SASL/PLAIN 时的认证信息泄露

  • 场景:公司内部部署的 Kafka 集群启用了 SASL/PLAIN 认证,但没有启用 SSL/TLS 加密。某个攻击者利用网络监听工具(如 Wireshark)在公司内网中截获了 Kafka 生产者与服务器之间的通信。由于没有加密,攻击者能够看到传输中的用户名和密码。

  • 解决方案:为防止认证信息泄露,配置 SASL_SSL 以加密通信,并启用客户端证书验证。通过使用加密协议,攻击者即使能够截获流量,也无法读取用户名和密码。

案例 2:中间人攻击(MITM)

  • 场景:攻击者利用中间人攻击拦截客户端与 Kafka 服务器之间的通信,并伪造一个假 Kafka 服务器。在没有 SSL 加密的情况下,攻击者成功窃取了客户端的用户名和密码,导致认证失败或凭证被滥用。

  • 解决方案:使用 SASL_SSL 来确保数据传输的加密性。同时,客户端配置 truststore 来验证 Kafka 服务器的身份,防止连接到伪造的 Kafka 服务器。

案例 3:客户端与 Kafka 服务器的伪造

  • 场景:在某些企业环境中,内部员工可能试图通过伪造一个 Kafka 服务器来窃取公司内部数据或认证信息。由于没有验证 Kafka 服务器的身份,客户端可能会连接到恶意的伪造 Kafka 服务器,从而泄露敏感信息。

  • 解决方案:配置 SSL 和 truststore,要求客户端验证 Kafka 服务器的证书。这样,客户端只会连接到受信任的 Kafka 服务器,避免伪造服务器的风险。

5. SASL/PLAIN适用场景介绍

Kafka SASL/PLAIN 适用场景主要考虑其认证机制的简洁性和使用场合。SASL/PLAIN 是一种轻量级的认证机制,适用于某些特定的场景,但由于其安全性较低,通常适合用于内部环境或与其他安全措施配合使用。

5.1 简单场景中的认证需求

(1)内部环境或测试环境

  • 适用场景:在没有严格安全需求的内部环境或开发/测试环境中,SASL/PLAIN 由于其配置简单、容易实现,常被用于快速搭建 Kafka 集群。

  • 优点

    • 配置简单,不需要额外的复杂认证系统(如 Kerberos)。
    • 部署方便,适合小型的集群和非生产环境使用。
  • 注意事项

    • 不建议在生产环境中直接使用,特别是在开放的网络环境中,因为 SASL/PLAIN 使用明文传输密码,容易受到中间人攻击。

(2)低安全性要求的应用场景

  • 适用场景:一些对安全性要求较低的应用,如内网应用或封闭的网络环境,可能会选择 SASL/PLAIN 作为认证机制。

  • 优点

    • 实现简单,通常仅需配置用户名和密码即可。
  • 注意事项

    • 需要保证 Kafka 集群和客户端之间的网络是安全的,建议配合其他加密手段(如 SSL/TLS)使用,防止密码明文泄露。

5.2 与其他认证方式结合使用

(1)简单身份验证机制的补充

  • 适用场景:如果 Kafka 集群的安全需求并不高,但依然需要某种基本的认证机制,SASL/PLAIN 可以与其他安全措施(如基于 IP 的访问控制列表、VPC 安全组、VPN 等)一起使用。

  • 优点

    • SASL/PLAIN 提供了一种轻量级的认证方式,可以作为其他安全措施的补充。
  • 使用场景

    • 内部系统或小规模应用,对数据安全的需求不高,但仍需要身份验证机制来防止未经授权的访问。

(2)与 Kerberos 组合使用

  • 适用场景:在一些特定情况下,企业可能同时使用 Kerberos 和 SASL/PLAIN 来处理不同的客户端需求。例如,企业的大部分应用可能使用 Kerberos 进行认证,但对于某些小型应用或开发环境,使用 SASL/PLAIN 进行简化的认证。

  • 优点

    • 提供灵活性:可以根据不同客户端的需求选择认证方式。
  • 注意事项

    • 在大规模部署中,最好使用更强大的认证机制(如 SASL/GSSAPI,即 Kerberos),而 SASL/PLAIN 仅适用于特定需求。

5.3 与应用层身份验证配合

前端应用与 Kafka 的连接

  • 适用场景:某些前端应用需要通过 Kafka 进行消息传输,在这些应用中,可能会使用简单的用户名和密码进行身份验证。SASL/PLAIN 可以作为应用层的简单身份验证机制,避免在复杂环境中引入额外的认证流程。

  • 优点

    • 对应用开发者而言,SASL/PLAIN 的实现和配置非常简单。
  • 注意事项

    • 适合对安全要求较低的应用。对于涉及敏感数据的应用,可能需要使用更安全的认证方式。

5.4 外部系统集成

Kafka 与外部系统集成

  • 适用场景:当 Kafka 集群需要与外部系统(如第三方服务、外部客户端等)集成时,如果外部系统能够支持用户名和密码认证,SASL/PLAIN 提供了一种简便的身份验证机制。

  • 优点

    • 配置简单,尤其适用于集成外部系统或第三方应用。
    • 可以快速实现客户端与 Kafka 的连接。
  • 注意事项

    • 外部系统与 Kafka 之间的通信需要加密,建议使用 SASL_SSL 而不是 SASL_PLAINTEXT,以保障密码安全。

6. 总结

  • SASL/PLAIN 是一种基于用户名和密码的身份验证机制,适用于简化认证的场景。
  • 配置时需要注意 Kafka 服务器和客户端的 JAAS 配置,确保用户名、密码匹配,并选择合适的 security.protocol(例如 SASL_PLAINTEXTSASL_SSL)。
  • 为了确保安全,SASL/PLAIN 应该与 SSL 配合使用,以加密传输通道。

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

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

相关文章

C++,STL,【目录篇】

文章目录 一、简介二、内容提纲第一部分:STL 概述第二部分:STL 容器第三部分:STL 迭代器第四部分:STL 算法第五部分:STL 函数对象第六部分:STL 高级主题第七部分:STL 实战应用 三、写作风格四、…

【已解决】黑马点评项目Redis版本替换过程的数据迁移

黑马点评项目Redis版本替换过程的数据迁移 【哭哭哭】附近商户中需要用到的GEO功能只在Redis 6.2以上版本生效 如果用的是老版本,美食/KTV的主页能正常返回,但无法显示内容 上次好不容易升到了5.0以上版本,现在又用不了了 Redis 6.2的windo…

文献阅读 250201-The carbon budget of China: 1980–2021

The carbon budget of China: 1980–2021 来自 <https://www.sciencedirect.com/science/article/pii/S2095927323007703> 中国碳预算&#xff1a;1980–2021 年 ## Abstract: Using state-of-the-art datasets and models, this study comprehensively estimated the an…

《OpenCV》——图像透视转换

图像透视转换简介 在 OpenCV 里&#xff0c;图像透视转换属于重要的几何变换&#xff0c;也被叫做投影变换。下面从原理、实现步骤、相关函数和应用场景几个方面为你详细介绍。 原理 实现步骤 选取对应点&#xff1a;要在源图像和目标图像上分别找出至少四个对应的点。这些对…

条件变量 实现2生产者2消费者模型

1个生产者在生产的时候&#xff0c;另个生产者不能生产(生产者之间互斥) 条件变量用于线程同步&#xff0c;线程挂起/被唤醒。 条件变量和互斥锁共同保证生产者之间互斥生产者和消费者的同步。 思路&#xff1a; 1 定义、初始化共享资源 a 缓冲区&#xff1a;存储物品…

一个开源 GenBI AI 本地代理(确保本地数据安全),使数据驱动型团队能够与其数据进行互动,生成文本到 SQL、图表、电子表格、报告和 BI

一、GenBI AI 代理介绍&#xff08;文末提供下载&#xff09; github地址&#xff1a;https://github.com/Canner/WrenAI 本文信息图片均来源于github作者主页 在 Wren AI&#xff0c;我们的使命是通过生成式商业智能 &#xff08;GenBI&#xff09; 使组织能够无缝访问数据&…

使用C#开发一款通用数据库管理工具

由于经常使用各种数据库&#xff0c;笔者自己动手丰衣足食&#xff0c;使用C#开发了一款通用数据库管理工具&#xff0c;支持Mysql、Oracle、Sqlite、SQL Server等数据库的表、视图、存储过程、函数管理功能&#xff0c;并支持导入导出、数据字典生成、拖拽式跨机器跨库数据一键…

sqli-labs靶场通关

sqli-las通关 mysql数据库5.0以上版本有一个自带的数据库叫做information_schema,该数据库下面有两个表一个是tables和columns。tables这个表的table_name字段下面是所有数据库存在的表名。table_schema字段下是所有表名对应的数据库名。columns这个表的colum_name字段下是所有…

DNS缓存详解(DNS Cache Detailed Explanation)

DNS缓存详解 清空DNS缓存可以让网页访问更快捷。本文将从什么是DNS缓存、为什么清空DNS缓存、如何清空DNS缓存、清空DNS缓存存在的问题四个方面详细阐述DNS缓存清空的相关知识。 一、什么是DNS缓存 1、DNS缓存的定义&#xff1a; DNS缓存是域名系统服务在遇到DNS查询时自动…

【VM】VirtualBox安装CentOS8虚拟机

阅读本文前&#xff0c;请先根据 VirtualBox软件安装教程 安装VirtualBox虚拟机软件。 1. 下载centos8系统iso镜像 可以去两个地方下载&#xff0c;推荐跟随本文的操作用阿里云的镜像 centos官网&#xff1a;https://www.centos.org/download/阿里云镜像&#xff1a;http://…

2024第十五届蓝桥杯网安赛道省赛题目--rc4

rc4 一、查壳 无壳&#xff0c;32位 二、IDA分析 1.main 2.sub_401005 根据题目以及该函数的内容都可以让我们确定这是个rc4加密题。 所以

区块链项目孵化与包装设计:从概念到市场的全流程指南

区块链技术的快速发展催生了大量创新项目&#xff0c;但如何将一个区块链项目从概念孵化成市场认可的产品&#xff0c;是许多团队面临的挑战。本文将从孵化策略、包装设计和市场落地三个维度&#xff0c;为你解析区块链项目成功的关键步骤。 一、区块链项目孵化的核心要素 明确…

【机器学习】自定义数据集 使用scikit-learn中svm的包实现svm分类

一、支持向量机(support vector machines. &#xff0c;SVM)概念 1. SVM 绪论 支持向量机&#xff08;SVM&#xff09;的核心思想是找到一个最优的超平面&#xff0c;将不同类别的数据点分开。SVM 的关键特点包括&#xff1a; ① 分类与回归&#xff1a; SVM 可以用于分类&a…

电信传输基本理论/5G网络层次架构——超三万字详解:适用期末考试/考研/工作

电信传输的基本概念 信息、通信、电信、电信传输的定义 信息 信息指的是消息中的有效信息量 通信 通信指的是利用传输媒质将信息从一段传输到另一端 电信 电信的意思是利用电子技术来将信息从一段传输到另一端 电信传输 电信传输的概念就是将含有信息的电信号进行传输…

代码练习3

1 #include <stdio.h>void draw(int n) {for (int i n; i > 1; i--) {// 打印空格for (int j 0; j < n - i; j) {printf(" ");}// 打印星号for (int j 0; j < 2 * i - 1; j) {printf("*");}// 换行printf("\n");} }int main()…

好用的翻译工具

最近看到个好用的翻译工具&#xff0c;叫沉浸式翻译 沉浸式翻译 - 双语对照网页翻译插件 | PDF翻译 | 视频字幕翻译 我下载的是谷歌插件 点击下载插件会跳转到使用文档&#xff0c;跟着一步步操作即可 翻译的效果&#xff0c;我这里用的是免费版的&#xff0c;如果需要加强&…

Linux-CentOS的yum源

1、什么是yum yum是CentOS的软件仓库管理工具。 2、yum的仓库 2.1、yum的远程仓库源 2.1.1、国内仓库 国内较知名的网络源(aliyun源&#xff0c;163源&#xff0c;sohu源&#xff0c;知名大学开源镜像等) 阿里源:https://opsx.alibaba.com/mirror 网易源:http://mirrors.1…

el-table组件样式如何二次修改?

文章目录 前言一、去除全选框按钮样式二、表头颜色的修改 前言 ElementUI中的组件el-table表格组件提供了丰富的样式&#xff0c;有一个全选框的el-table组件&#xff0c;提供了全选框和多选。 一、去除全选框按钮样式 原本默认是有全选框的。假如有一些开发者&#xff0c;因…

一起学SysML v2规范(01)

1 00:00:01,560 --> 00:00:05,840 今天我们开始一个新的系列 2 00:00:06,690 --> 00:00:08,190 一起学SysML v2 3 00:00:08,200 --> 00:00:09,570 规范 4 00:00:15,770 --> 00:00:17,040 这里说一起学 5 00:00:17,050 --> 00:00:18,920 就是说我和大家一起学…

(9)下:学习与验证 linux 里的 epoll 对象里的 EPOLLIN、 EPOLLHUP 与 EPOLLRDHUP 的不同。小例子的实验

&#xff08;4&#xff09;本实验代码的蓝本&#xff0c;是伊圣雨老师里的课本里的代码&#xff0c;略加改动而来的。 以下是 服务器端的代码&#xff1a; 每当收到客户端的报文时&#xff0c;就测试一下对应的 epoll 事件里的事件标志&#xff0c;不读取报文内容&#xff0c;…