gpt4 book ai didi

java - 如何以非root用户身份运行Kafka?

转载 作者:太空宇宙 更新时间:2023-11-04 09:23:05 26 4
gpt4 key购买 nike

根据其docs , Apache Kafka 默认记录到/tmp/kafka-logs

因为 /tmp 在 Linux 中属于 root,那么对我来说,这意味着你必须以 root 的身份运行 Kafka,以便以便它正确登录到该位置。但是出于安全目的,我不希望它以 root 身份运行,所以我想弄清楚我的选择是什么。我相信我必须在以下选项中做出选择:

  1. 使用 -Dkafka.logs.dir 命令行开关指定一个不同的位置(不属于 root)来写入日志;或
  2. 提前(即在启动 Kafka 之前)修改系统,以便 /tmp/kafka-logs 与将要启动 Kafka 的用户属于同一用户(或者,通常,确保 Kafka 用户具有对该目录进行 r/w/x 的正确权限);或

有人可以澄清(或更正)我对 Linux 权限和进程的理解是正确的,而且这是我唯一的两个选择吗?当然,如果有任何其他选项可以让我以非 root 用户身份运行 Kafka,请加入!

最佳答案

$ ls -ld /tmp
drwxrwxrwt 16 root root 32768 Sep 28 16:39 /tmp

第一个rwx意味着 /tmp对其所有者(root)可读、可写和可执行,第二个 rwx意味着它对其组(根)是可读、可写和可执行的,第三个 rwx意味着它对每个人 都是可读、可写和可执行的。 (对于目录“可执行”意味着它可以导航到)。

因此您的非特权用户可以将日志文件写入 /tmp .如果其他用户已经创建了自己的 /tmp/kafka-logs,则可能会出现问题.

但是,将日志写入 /tmp从长远来看,这不是一个可持续的战略。如果这是个人系统,一切都会发生,但在生产系统上,您不会期望 /tmp/var/log这样的目录有预留存储空间或维护注意有。根据它的名字,你可以猜到 /tmp 中的文件。如果空间开始用完,则被认为是删除的公平游戏。

您链接的页面非常清楚 - 虽然有默认值,但他们的期望是您至少提供一个包含 broker.id 的属性文件。 , logs.dirzookeeper.connect .

因此,配置您喜欢的任何日志目录,由您的首选用户写入。

关于java - 如何以非root用户身份运行Kafka?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39752315/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com