Permissions

處理需要創建 Solr 核心的多個使用者

  • August 30, 2017

我們的應用伺服器(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 有一種機制來處理這種情況,但我似乎找不到任何東西。

您可以將使用者 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]哪裡

$$ permissions $$是 rwx 和的任意組合$$ file/directory $$可以是絕對路徑或相對路徑。例如,setfacl -m "u:solr:rwx" /var/solr/data將授予 solr 使用者對該文件夾的完全權限。 而且,為了完成,您可以知道哪些文件具有由 設置的 FACL +,當您執行ls -l. 然後您可以使用該getfacl文件上的命令來查看它具有的附加權限。該命令-x上的標誌setfacl用於刪除 FACL 列表中的條目。

引用自:https://unix.stackexchange.com/questions/389296