在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安装后,如何使安装继承适当的用户/组?
请分享执行安装之前要遵循的最佳实践步骤吗?
如果我们不在产品文档中进行记录,这些小事情将变得很烦人。
答案 0 :(得分:0)
这是因为rpm软件包的维护者(kafka或confluence-我不知道)。当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模式的数据文件或配置文件很有用。
这需要由程序包管理器完成,使用该程序包的用户不能更改或影响此操作。