紛らわしいファイル権限の問題 | KandaSearch Community Support Forum

紛らわしいファイル権限の問題

トピック作成者:ks-solruserml-bot (2025/10/24 18:23 投稿)
2
OpenOpen

(The bot translated the original post https://lists.apache.org/thread/23pfgl49qzyx18mbwx1dsrmmr46bg5o5 into Japanese and reposted it under Apache License 2.0. The copyright of posted content is held by the original poster.)

こんにちは、

私の小さなテスト用 Solr クラスタでバックアップを作成しようとすると、ファイル権限の問題が発生します。
手順は以下のドキュメントに従っています:
https://solr.apache.org/guide/solr/latest/deployment-guide/collection-management.html#backup

バックアップを取得しようとするたびにエラーになります。

コマンド:

$ sudo -u solr curl 'http://localhost:8983/solr/admin/collections?action=BACKUP&name=book_20250701&collection=book&location=file%3A%2F%2F%2Fmnt%2Fbms%2Fsolr_cluster_backups'

ログ出力:

2025-07-01 13:50:28.844 ERROR (qtp1275009283-23-beta.intern-645) [c:book s: r: x: t:beta.intern-645] o.a.s.h.RequestHandlerBase Server exception
=> java.security.AccessControlException: access denied ("java.io.FilePermission" "/mnt/bms/solr_cluster_backups" "read")
        at java.base/java.security.AccessControlContext.checkPermission(AccessControlContext.java:472)
(以下省略、添付のスタックトレース参照)

これは理解できません。

環境は以下の通りです:

  • Ubuntu 22.04
  • OpenJDK 11
  • Solr 9.8.1 を3台で稼働
  • サービスユーザ: solr (uid 119, 3台とも同じ)
  • 通常は systemd で起動していますが、/opt/solr/bin/solr start --cloud を手動で起動しても問題は変わりません。

バックアップ先のディレクトリ /mnt/bms/solr_cluster_backups は、各サーバで NAS 共有マウントになっていて、以下の設定にしています:

  • 所有者: solr
  • パーミッション: 0777

確認したこと:

  • ユーザ solrtouch /mnt/bms/solr_cluster_backups/testfile が正常に動作し、書き込みできる。
  • systemd に起因する可能性を除外するため、手動で Solr を起動しても問題は変わらない。
  • Java プログラムで java.nio.files.Files.exists()solr ユーザで実行 → 常に例外になるわけではない。添付コードで確認済み。
  • apparmor が原因ではない (sudo systemctl status apparmor.service → "Unit apparmor.service could not be found.")。
  • Solr や ZooKeeper に特にセキュリティ設定はしていない。
返信投稿者:ks-solruserml-bot (2025/10/24 18:23 投稿)

これは Java のセキュリティマネージャによって制御されています。

デフォルトのパス以外にコアを作成したりバックアップを保存したりする場合は、Solr に対してどのパスを許可するかを伝える必要があります。
solr.xml に新しく追加された allowPaths 要素に、許可するパスをカンマ区切りで指定します。

参考:
https://solr.apache.org/guide/solr/latest/upgrade-notes/major-changes-in-solr-9.html

また、こちらにも少し説明があります:
https://solr.apache.org/guide/solr/latest/deployment-guide/user-managed-index-replication.html

あなたには次の 2 つの選択肢があります:

  • SOLR_SECURITY_MANAGER_ENABLED=false としてセキュリティマネージャを無効にする
  • -Dsolr.allowPaths=/mnt/bms/solr_cluster_backups を指定してバックアップ先パスを許可する

Kevin Risden

返信投稿者:ks-solruserml-bot (2025/10/24 18:23 投稿)

ありがとうございます。とても助かりました。

/opt/solr/bin/solr.in.sh に次の行を追加しました:

SOLR_OPTS="$SOLR_OPTS -Dsolr.allowPaths=/mnt/bms/solr_cluster_backups"

トピックへ返信するには、ログインが必要です。

KandaSearch

Copyright © 2006-2025 RONDHUIT Co, Ltd. All Rights Reserved.

投稿の削除

この投稿を削除します。よろしいですか?