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

Dom*_*erk 2 filesystems permissions chmod macos

我想,标题泄露了它。

这是交易:

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

运行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。那确实禁用了它,但仍然没有让我更改我的权限。

我对可能发生的事情一无所知。也许我的帐户坏了?

Dom*_*erk 6

我找到了这个废话的原因。是苹果。

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

我的解决方案是执行以下操作:

  1. 通过关闭机器并通过以下方式启动它来启动到恢复模式 Cmd + R + Boot
  2. 恢复后打开终端
  3. 禁用 SIP 使用 csrutil disable
  4. 重启机器
  5. 启动到 MacOS Catalina 时打开终端
  6. sudo mount -uw /

这将为您提供当前会话的 root 访问权限。下次启动时会重置。虽然现在你可以在根文件夹中做很多事情,比如把你的东西移到别处。

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

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

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

希望这可以帮助任何遇到 Apple 做出的愚蠢决定的人。整个 Catalina 更新一团糟。