MacOS 将根 Mongodb 数据文件夹所有权切换为系统所有权,并且无​​法再改回

MacOS 将根 Mongodb 数据文件夹所有权切换为系统所有权,并且无​​法再改回

我想,标题已经说明了一切。

事情是这样的:

MacOS 将我的 /data/db 文件夹(MongoDB 使用该文件夹来完成大量工作)切换为只读文件系统。基本上是在一夜之间发生的。

运行ls -lO /data返回以下内容: drwxr-xr-x 182 root admin - 5824 Jul 11 17:33 db

尝试运行sudo chmod -R 777 $USER /data将返回以下内容: chmod: Unable to change file mode on /data/db/index-32-577782821146278306.wt: Read-only file system总共有很多条目。

我推测是 SIP 导致了这个问题。我尝试在恢复模式下通过运行 来禁用它csrutil disable。这确实禁用了它,但仍然不允许我更改权限。

我不知道到底发生了什么。也许我的账户坏了?

答案1

我找到了造成这种荒唐现象的原因。是苹果。

基本上,这里发生的事情是,新版本的 MacOS(即 Catalina)现在将系统根文件夹设为只读。因此,任何因某种原因需要使用根文件夹的软件都会被搞砸。

我的解决方案如下:

  1. 关闭机器,然后通过以下方式启动进入恢复模式Cmd + R + Boot
  2. 进入恢复状态后打开终端
  3. 使用以下方式禁用 SIPcsrutil disable
  4. 重启机器
  5. 启动 MacOS Catalina 后打开终端
  6. 跑步sudo mount -uw /

这将授予您当前会话的 root 访问权限。下次启动时它将被重置。不过现在您可以在根文件夹中做很多事情,比如将您的内容移到其他地方。

所以我所做的是使用此命令将整个/data文件夹移动到:/System/Volumes/Datasudo mv /data /System/Volumes/Data

显然,这是放置所有数据的首选位置。根据根文件夹的新工作方式,您可以为这些文件夹添加链接,这样它们就会像根文件夹的一部分一样运行。这显然对我来说不起作用。但是,我仍然可以运行并进行如下mongod设置:dbpath

sudo mongod --dbpath /System/Volumes/Data/data/db

希望这能帮助到所有遇到苹果这个愚蠢决定的人。整个 Catalina 更新简直是一团糟。

相关内容