gpt4 book ai didi

linux - mongodb &/data/db目录权限

转载 作者:可可西里 更新时间:2023-11-01 10:41:03 31 4
gpt4 key购买 nike

我正在尝试使用默认值运行 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 组的成员时无法运行它?

最佳答案

目录需要有执行权限,但目录内的文件不需要执行权限。此外,正如@franklinsijo 所指出的,-R 应该是 chmod 的第一个参数。

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

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

这会先给/data下的所有文件赋予执行权限,然后将所有正常文件恢复为只能读写,不能执行。

关于linux - mongodb &/data/db目录权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43353058/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com