2017-04-11 17 views
1

/data/dbディレクトリを使用しているので、デフォルトでmongodを実行しようとしています。私が最初にmongodを実行しているとき、私は次のエラーを得たデータディレクトリので、他の多くのようmongodb&/ data/dbディレクトリのアクセス許可

sudo chown mongodb:mongodb /data -R 

の所有者を変更:。

理にかなっているが、どのような意味がありません
2017-04-11T12:32:25.932-0500 I STORAGE [initandlisten] exception in initAndListen: 28596 Unable to determine status of lock file in the data directory /data/db: boost::filesystem::status: Permission denied: "/data/db/mongod.lock", terminating 

のみです私ならば、私は実際にmongodそれを実行することができます方法は次のとおりです。

chmod 777 /data -R 

の場合
chmod 666 /data -R 

同じエラーが発生します。これはデータディレクトリであると考えられているので、なぜ実行権限が必要ですか?

私はMongoDBのグループ

sudo usermod -g mongodb myuser 

に私のユーザーを追加し、私は

chmod 770 /data -R 

を試してみましたが、そのはまだ私はmongodbグループの一員だとしても通過できません。

なぜ私はこのすべてを乱していますか?私はデータディレクトリを適切に保護したいので、777セキュリティで実行する必要はありません。

だから、質問は次のとおりです。

  1. 実行権限をされたのはなぜ私はMongoDBのグループのメンバーだったのに、なぜ私はそれを実行することができません
  2. が必要?
+0

OSは何ですか?あなたはmongodを開始するために使用しているコマンドは何ですか? – helmy

+0

この 'sudo chown mongodb:mongodb/data -R'は動作しましたか? '-R'フラグがパスの後に渡されるのはなぜですか? – franklinsijo

+0

@helmy ubuntu 14.04 – coding4fun

答えて

1

ディレクトリには実行権限が必要ですが、ディレクトリ内のファイルには実行権限が必要ありません。また、@ franklinsijoが指摘するように、-Rはchmodの最初のパラメータでなければなりません。私は次のことを行うだろう物事解決するには

$ sudo chmod -R 770 /data 
$ sudo find /data -type f -exec chmod 660 {} \; 

は、これが最初の実行許可を/データの下にすべてを与える、とだけ実行読み取りおよび書き込みではなくなるまで、すべての通常のファイルを返します。

+0

findコマンドで次のエラーが表示されます。find:パスは式の前にある必要があります。chmod – coding4fun

+0

申し訳ありません。 findコマンドに-execを追加しました。 –

関連する問題