首页 > 解决方案 > Confluent Platform RPM 安装用户

问题描述

在 Confluent Platform 本地生产 rpm 安装中,为什么安装程序会创建大多数以“root”为所有者的文件和文件夹?见例子;

drwxr-xr-x   2 root root     4096 Sep 20 15:53 confluent-rebalancer
drwxr-xr-x   2 root root     4096 Sep 20 15:53 kafka-connect-s3
drwxr-xr-x   2 root root     4096 Sep 20 15:53 kafka-connect-hdfs
drwxr-xr-x   2 root root     4096 Sep 20 15:53 kafka-rest
drwxr-xr-x   2 root root     4096 Sep 20 15:54 confluent-hub-client
drwxr-xr-x   2 root root     4096 Sep 20 15:54 kafka-connect-replicator
drwxr-xr-x   2 root root     4096 Sep 20 15:54 kafka-connect-elasticsearch
drwxr-xr-x   2 root root     4096 Sep 20 15:54 confluent-kafka-mqtt
drwxr-xr-x   2 root root     4096 Sep 20 15:54 kafka-connect-activemq
drwxr-xr-x   2 root root     4096 Sep 20 15:54 kafka-connect-ibmmq
drwxr-xr-x   2 root root     4096 Sep 20 15:54 kafka-connect-jms
drwxr-xr-x   2 root root     4096 Nov 28 14:19 kafka

/etc/kafka

-rw-r--r-- 1 root root 1169 Jul 29 00:52 trogdor.conf
-rw-r--r-- 1 root root 1032 Jul 29 00:52 tools-log4j.properties
-rw-r--r-- 1 root root 1919 Jul 29 00:52 producer.properties
-rw-r--r-- 1 root root 4727 Jul 29 00:52 log4j.properties
-rw-r--r-- 1 root root 1221 Jul 29 00:52 consumer.properties
-rw-r--r-- 1 root root 2276 Jul 29 00:52 connect-standalone.properties
-rw-r--r-- 1 root root  881 Jul 29 00:52 connect-file-source.properties
-rw-r--r-- 1 root root  883 Jul 29 00:52 connect-file-sink.properties
-rw-r--r-- 1 root root  909 Jul 29 00:52 connect-console-source.properties
-rw-r--r-- 1 root root  906 Jul 29 00:52 connect-console-sink.properties
-rw-r--r-- 1 root root 1483 Nov 14 22:46 connect-log4j.properties
-rw-r--r-- 1 root root 5356 Nov 16 10:41 connect-distributed.properties
-rw-r--r-- 1 root root 1243 Nov 28 11:07 zookeeper.properties
-rw-r--r-- 1 root root 8416 Nov 28 14:19 server.properties

安装文档 - https://docs.confluent.io/current/installation/installing_cp/rhel-centos.html#systemd-rhel-centos-install

安装命令示例:

sudo yum clean all && sudo yum install confluent-platform-2.11

安装程序会创建以下用户:

cp-schema-registry
cp-kafka-rest
cp-ksql
cp-kafka
cp-kafka-connect
cp-control-center

但是,安装后不会自动应用文件和文件夹的用户/所有者的适当权限。如果你没有“root”用户权限,你就完蛋了!

在执行 yum 安装后,我们如何让安装继承正确的用户/组?

请分享在执行安装之前要遵守的最佳实践步骤?
如果我们不在产品文档中记录,这些小事情就会变得烦人。

标签: apache-kafkarpmconfluent-platform

解决方案


这是因为 rpm 包的维护者(kafka 或 Confluent - 我不认识他们)。当您在 RPM 规范文件中有这样的内容时:

%files
/etc/kafka/

然后这些文件归 root:root 所有,因为这是 RPM 的默认设置。默认值是正常的,因为您通常希望文件由 root 拥有(/usr/bin/*,libs,...)它可以通过以下方式覆盖:

%files
/etc/root-ownded-file
%defattr(-,someuser,somegroup)
/some/datadir/owned/by/someuser
/other/file/owned/by/someuser

或者您可以仅为某些文件定义它:

%files
/etc/root-ownded-file
%attr(0644, someuser, somegroup) /some/datadir/owned/by/someuser

这对具有例如 0600 acl 模式的数据文件或配置文件有意义。

这需要由包管理器完成,使用此包的用户无法更改或影响这一点。


推荐阅读