apache-kafka - 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
安装命令示例:
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 安装后,我们如何让安装继承正确的用户/组?
请分享在执行安装之前要遵守的最佳实践步骤?
如果我们不在产品文档中记录,这些小事情就会变得烦人。
解决方案
这是因为 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 模式的数据文件或配置文件有意义。
这需要由包管理器完成,使用此包的用户无法更改或影响这一点。
推荐阅读
- sql - 在 BigQuery 中插入另一个项目表中的数据
- android - 在通知徽章图标未显示在 Vivo 中,oppo 自定义操作系统但在三星中显示颤动
- php - 如何根据条件打开php表单If else方法
- python - 检查目标时出错:预期 dense_33 有 2 个维度,但得到的数组具有 shape(80, 2, 2)
- python - 如何 django 类别相关标签
- jsonpath - 如何获取给定要求的 json 路径?
- python - Heroku 部署:dash.exceptions.NoLayoutException
- sql-server - 我想知道为什么在 SQL Server 的 ON 子句上没有等号(=)就不能完成合并连接
- java - 我可以通过流而不是 BufferedImage 获取 PNG 文件的 PDImageXObject 吗?
- javascript - 影响 y 滚动长度的动画