データディレクトリの変更後のMongodb権限エラー

データディレクトリの変更後のMongodb権限エラー

私はUbuntuにmongodbバージョン3.0.3をインストールしました。 confファイルを編集し、デフォルトのデータディレクトリを「/home/user/mongodb」に変更し、次の権限を与えました。

drwxr-xr-x  4 mongodb mongodb  4096 May 29 23:26 mongodb

confファイルで他のものを変更していません。 mongodサービスを開始しようとすると

sudo service mongod start

mongoコマンドでシェルに接続しましたが、次のエラーが発生しました。

MongoDB shell version: 3.0.3
connecting to: test
2015-05-29T23:58:49.450+0200 W NETWORK  Failed to connect to 127.0.0.1:27017, reason: errno:111 Connection refused
2015-05-29T23:58:49.452+0200 E QUERY    Error: couldn't connect to server 127.0.0.1:27017 (127.0.0.1), connection attempt failed
    at connect (src/mongo/shell/mongo.js:179:14)
    at (connect):1:6 at src/mongo/shell/mongo.js:179
exception: connect failed

サーバーを起動しようとするたびに、ログファイルに次のように表示されます。

2015-05-30T00:01:02.552+0200 I CONTROL  ***** SERVER RESTARTED *****
2015-05-30T00:01:02.581+0200 I STORAGE  [initandlisten] exception in initAndListen std::exception: boost::filesystem::status: Permission denied: "/home/user/mongodb/storage.bson", terminating
2015-05-30T00:01:02.581+0200 I CONTROL  [initandlisten] dbexit:  rc: 100

私が知る限り、権限は正しいです。何が問題なのでしょうか?

ベストアンサー1

デフォルトでは、ユーザーのホームディレクトリはその所有者だけを読み書きすることができ、他のユーザー(ルートを除く)は他のユーザーのホームフォルダの内容を一覧表示できません。したがって、mongodbユーザーが新しく提供されたディレクトリにアクセスできることを確認する必要があります。次のコマンドを使用して確認できます。

namei -m /home/user/mongodb

出力例

f: /home/scantlight/mongodb
  dr-xr-xr-x /
  drwxr-xr-x home
  drwx------ scantlight
  drwxr-xr-x mongodb

ご覧のとおり、私のホームフォルダには読み書き私は権限を持っています、所有者...他のユーザーは権限を持っていないので、他のユーザーは自分のホームフォルダの内容を一覧表示できません(ルートを除く)。

もちろん、ホームディレクトリ内の他のユーザーに書き込みまたは読み取り権限を与えたくありませんが、宛先フォルダへのアクセス権を持ちたいと思います。ここで x フラグを使用できます。ファイルにxフラグが設定されているとファイルを実行できるという意味なので、実行フラグと呼ばれます。ただし、このフラグがフォルダーに設定され、r(読み取り)またはw(書き込み)フラグの両方が設定されていない場合は、時間が設定されます。これは、同じグループの他のユーザーがこのフォルダを介してより深いフォルダにアクセスできることを意味します。

したがって、mongodb ユーザーがアクセス、読み取り、書き込みができることを確認します。/ホーム/ユーザー/mongodbフォルダ...ホームフォルダには、他のすべてのユーザーに対して実行可能フラグ(xフラグ)が設定されている必要があります。

chmod -R o+x /home/user/mongodb

その後、前の出力例は次のようになります。

f: /home/scantlight/mongodb
 dr-xr-xr-x /
 drwxr-xr-x home
 drwx-----x scantlight
 drwxr-xr-x mongodb

他のすべてのユーザーに対するx権限を参照してください。役に立たない場合:)... 内部のファイル権限を確認してください。/ホーム/ユーザー/mongodbフォルダに含まれるファイルの権限に問題がある可能性がありますか?

おすすめ記事