如何以非根用户身份运行kafka?

3df52oht  于 2021-06-07  发布在  Kafka
关注(0)|答案(1)|浏览(556)

根据文件,Apache·Kafka登录到 /tmp/kafka-logs 默认情况下。
/tmp 属于 root 在linux中,对我来说,这意味着你必须以 root 以便它正确地登录到该位置。但是为了安全起见,我不希望它以root身份运行,因此我正在尝试找出我的选项。我相信我必须在以下两者中做出选择:
使用 -Dkafka.logs.dir 命令行开关,为要写入的日志指定不同的位置(不属于root);或
提前修改系统(即在开始Kafka之前),以便 /tmp/kafka-logs 与将要启动kafka的用户属于同一个用户(或者,通常,确保kafka用户对该目录具有r/w/x的正确权限);或
有人能澄清(或纠正)我对linux权限和进程的理解是正确的,而这是我仅有的两个选择吗?当然,如果有任何其他的选择可以让我以非根用户身份运行Kafka,请加入!

ljsrvy3e

ljsrvy3e1#

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

第一个 rwx 意思是 /tmp 由其所有者(根)可读、可写和可执行 rwx 意味着它的组(根)是可读的、可写的和可执行的,第三个 rwx 意味着它是可读的,可写的,每个人都可以执行(对于一个目录,“可执行文件”意味着它可以被导航到)。
所以您的非特权用户可以将日志文件写入 /tmp . 如果其他用户已经创建了自己的,则可能会出现问题 /tmp/kafka-logs .
但是,将日志写入 /tmp 从长远来看,这不是一个可持续的战略。如果这是一个个人系统,任何事情都会发生,但在一个生产系统上,你不会期望 /tmp 保留目录所需的存储空间或维护注意事项 /var/log 有。从它的名字,你可以猜到 /tmp 被认为是公平的游戏删除,如果空间开始用尽。
您链接的页面非常清晰-虽然有默认值,但他们的期望是至少提供一个包含 broker.id , logs.dir 以及 zookeeper.connect .
所以,配置任何你喜欢的日志目录,由你喜欢的用户写。

相关问题