私たちのアプリケーションサーバー(glassfish 4)はユーザーglassfishで実行されます。私たちのsolr 5サーバーはユーザーsolrとして実行されます。 glassfish と solr の両方が同じ物理サーバー上で実行されます。
glassfishで実行されているアプリケーションはsolrコアを作成できる必要があります。これを行うには、1)アプリケーションは事前定義されたsolr設定を/var/solr/data
ディレクトリにコピーします。 2) REST API を介して solr コマンドを実行して solr コアを生成します。
ただし、フォルダは権限0755を持つglassfishが所有しています。この権限により、solrユーザーはデータディレクトリを作成し、コアを正しく作成できません。
0777にアップロードされたフォルダを手動で設定してコアを作成すると、コアは正常に作成されます。
この問題を解決する最も適切な方法は何ですか?
Solrがこの状況を処理できるメカニズムがあればいいのに、何も見つからないようです。
答え1
/var/solr/data
ユーザーsolrをディレクトリに割り当てられたグループに追加したり、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]
[permission]はrwxの組み合わせであり、[file / directory]は絶対パスまたは相対パスになります。たとえば、setfacl -m "u:solr:rwx" /var/solr/data
solr ユーザーにはフォルダに対するフルアクセス権が付与されます。
そして完了する+
にはls -l
。getfacl
コマンド-x
のフラグは、setfacl
FACLリストから項目を削除するために使用されます。