【发布时间】:2017-09-07 06:16:44
【问题描述】:
我正在尝试使用默认值运行 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 安全。
所以问题是:
- 为什么需要执行权限
- 为什么我是 mongodb 组的成员时无法运行它?
【问题讨论】:
-
什么操作系统?你用什么命令来启动 mongod?
-
这个
sudo chown mongodb:mongodb /data -R有效??为什么-R标志在路径后传递? -
@helmy ubuntu 14.04
-
@franklinsijo 没有理由,但它似乎奏效了。
标签: linux mongodb file-permissions chmod