如何在生产环境中以非 Root 用户启动 Kafka

简介: 如何在生产环境中以非 Root 用户启动 Kafka


为了在生产环境中以非 root 用户(如 kafka 用户)启动 Kafka,您需要确保 Kafka 的安装目录和数据目录的权限正确设置,以便 Kafka 用户可以访问和操作这些目录。以下是步骤和示例:


如何在生产环境中以非 Root 用户启动 Kafka

在生产环境中,以非 root 用户(如 Kafka 用户)启动 Kafka 可以提高安全性,防止潜在的权限滥用。本文将介绍如何配置 Kafka 以非 root 用户启动并总结相关经验。

1. 创建 Kafka 用户

首先,确保 Kafka 用户存在。你可以通过以下命令创建 Kafka 用户:

sudo useradd kafka

2. 设置目录权限

为确保 Kafka 用户能够访问和操作 Kafka 的安装目录和数据目录,设置这些目录的权限:

sudo chown -R kafka:kafka /opt/kafka
sudo chown -R kafka:kafka /opt/data/kafka

3. 配置 systemd 服务文件

为了使用 Kafka 用户启动 Kafka 服务,需要修改 systemd 服务文件。创建或编辑 /etc/systemd/system/kafka.service:

[Unit]
Description=Apache Kafka Server
Documentation=http://kafka.apache.org/documentation.html
After=network.target
[Service]
User=kafka
Group=kafka
ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
ExecStop=/opt/kafka/bin/kafka-server-stop.sh
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target

4. 启动和启用 Kafka 服务

重新加载 systemd 配置,然后启动并启用 Kafka 服务:

sudo systemctl daemon-reload
sudo systemctl start kafka
sudo systemctl enable kafka

5. 验证 Kafka 服务

确保 Kafka 服务正在以 Kafka 用户身份运行:

ps aux | grep kafka

你应该看到 Kafka 进程是由 Kafka 用户启动的。

经验总结

在生产环境中以非 root 用户启动 Kafka 是一个最佳实践,能够有效提高系统安全性。通过以下步骤确保操作顺利进行:

  1. 创建并配置 Kafka 用户。
  2. 设置目录权限确保 Kafka 用户可以访问必要的文件和目录。
  3. 修改 systemd 服务文件,使 Kafka 服务以 Kafka 用户启动。
  4. 启动和验证 Kafka 服务,确保配置正确。

通过这些操作,可以保证 Kafka 服务以更安全的方式运行。


这种方式不仅能提高安全性,还能避免使用 root 用户带来的潜在风险。

相关文章
Maven之阿里云镜像仓库配置
方式一:全局配置可以添加阿里云的镜像到maven的setting.xml配置中,这样就不需要每次在pom中,添加镜像仓库的配置,在mirrors节点下面添加子节点: <id>nexus-aliyun</id> <mirrorOf>central</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.
|
消息中间件 存储 运维
从 Kafka 2.x 到 Kafka 3.x:升级之旅
从 Kafka 2.x 到 Kafka 3.x:升级之旅
2565 2
|
Java Spring
Spring boot 运行服务jar外配置配置文件方式总结
Spring boot 运行服务jar外配置配置文件方式总结
1457 0
|
Java Maven 数据安全/隐私保护
Maven - 发布JAR包到Maven远程中央仓库(五)
Maven - 发布JAR包到Maven远程中央仓库(五)
1142 0
Maven - 发布JAR包到Maven远程中央仓库(五)
|
缓存 Java
java: 警告: 源发行版 17 需要目标发行版 17,java17 无效的目标发行
java: 警告: 源发行版 17 需要目标发行版 17,java17 无效的目标发行
9975 3
|
运维 数据管理 数据库
数据管理DMS产品使用合集之遇到报错:数据库账号没有权限执行,该如何排查
阿里云数据管理DMS提供了全面的数据管理、数据库运维、数据安全、数据迁移与同步等功能,助力企业高效、安全地进行数据库管理和运维工作。以下是DMS产品使用合集的详细介绍。
218 2
【已解决】kex_exchange_identification: Connection closed by remote host fatal: Could not read from
【已解决】kex_exchange_identification: Connection closed by remote host fatal: Could not read from
|
Docker 容器
docker 设置国内镜像源
docker 设置国内镜像源
86261 1
|
存储 NoSQL Redis
【Redis核心知识 八】Redis集群之Cluster模式及集群搭建(二)
【Redis核心知识 八】Redis集群之Cluster模式及集群搭建
351 1