处理需要创建 Solr 核心的多个用户

处理需要创建 Solr 核心的多个用户

我们的应用程序服务器 (glassfish 4) 在用户 glassfish 下运行。我们的 solr 5 服务器在用户 solr 下运行。 glassfish 和 solr 都运行在同一台物理服务器上。

在 glassfish 中运行的应用程序需要能够创建 solr 核心。为此,1) 应用程序将预定义的 solr 配置复制到/var/solr/data目录中。 2) 通过 REST API 发出 solr 命令来创建 solr 核心。

但是,该文件夹由 glassfish 拥有,权限为 0755。由于这些权限,solr 用户无法创建数据目录并正确创建核心。

如果我手动设置上传到0777的文件夹并创建core,则core创建成功。

解决这个问题最合适的方法是什么?

我希望 solr 有一种机制来处理这种情况,但我似乎找不到任何东西。

答案1

您可以将用户 solr 添加到分配给/var/solr/data目录的组,或者创建您自己的组,其中包含 solr 和 glassfish 用户,并将分配给目录的组更改为这个新组。这样你只需要对该目录设置 775 权限。

或者,您可以使用文件访问列表来授予其他用户或组级别的权限。首先检查 FACL 是否已使用命令启用sudo tune2fs -l /dev/[fs identifier] | grep -i "default mount options"。如果acl右侧没有选项,您将需要使用 启用 FACL sudo tune2fs -o acl /dev/[fs identifier],然后重新启动或重新挂载文件系统。启用 FACL 后,您可以使用该setfacl命令授予额外权限;因此,添加其他用户的情况是setfacl -m "u:[username]:[permissions]" [file/directory],[权限] 是 rwx 的任意组合,[文件/目录] 可以是绝对路径或相对路径。例如,setfacl -m "u:solr:rwx" /var/solr/data将授予 solr 用户对该文件夹的完全权限。

并且,为了完成,您可以知道哪些文件具有由 FACL 设置的 FACL,+当您执行ls -l.然后您可以getfacl对该文件使用该命令来查看它具有的附加权限。命令-x上的标志用于setfacl删除 FACL 列表中的条目。

相关内容