處理需要創建 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 有一種機制來處理這種情況,但我似乎找不到任何東西。
您可以將使用者 solr 添加到分配給
/var/solr/data
目錄的組中,或者創建自己的組,同時包含 solr 和 glassfish 使用者,並將分配給目錄的組更改為這個新組。這樣,您只需要在目錄上設置 775 權限。或者,您可以使用文件訪問列表來授予其他使用者或組級別的權限。首先檢查是否使用命令啟用了 FACL
sudo tune2fs -l /dev/[fs identifier] | grep -i "default mount options"
。如果acl
不是右側的選項,您將需要使用 啟用 FACLsudo 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 列表中的條目。