mongodb& / data / db目录权限

时间:2017-04-11 17:55:46

标签: linux mongodb file-permissions chmod

我正在尝试使用默认值运行mongod,因此它使用的是/data/db目录。我更改了数据目录的所有者

sudo chown mongodb:mongodb /data -R

与其他许多人一样,我在第一次运行时遇到了以下错误:mongod。:

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. 为什么需要执行权限
  2. 当我是mongodb组的成员时,为什么我无法运行它?

1 个答案:

答案 0 :(得分:1)

目录需要具有执行权限,但目录中的文件不需要执行权限。另外,如@franklinsijo所述,-R应该是chmod的第一个参数。

要解决问题,我会执行以下操作:

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

这将首先提供/ data execute权限下的所有内容,然后将所有普通文件返回到只读和写,但不执行。