使用 /etc/synthetic.conf 文件是一个在 macOS Catalina (10.15) 及更高版本上创建顶级目录(即根目录 / 下的目录)的官方支持方法,而不需要禁用系统完整性保护(SIP)。这个方法允许在根目录下创建一个新目录,该目录实际上是指向系统中另一个位置的符号链接,但表现得就像是直接位于 / 下一样。这对于需要在 / 下写入但又不想关闭 SIP 或获得特殊权限的应用来说是一个很好的解决方案。

如何使用 /etc/synthetic.conf?
打开 Terminal(终端)。

使用你喜欢的文本编辑器以超级用户权限编辑 /etc/synthetic.conf 文件。如果文件不存在,你将创建它。可以使用如下命令:

sudo vi /etc/synthetic.conf

在 synthetic.conf 文件中添加一行,指定你想在 / 下创建的目录名和它应该映射到的实际目录路径。格式如下:

med    /path/to/actual/logdir

这里,med 是你希望在 / 下出现的目录名称,/path/to/actual/directory 是这个新目录将映射到的现有目录的路径。确保这个现有目录是实际存在的,而且有适当的写入权限。

注意,中间的分隔符是“\t”也就是tab键,而非空格

保存并关闭文件。然后,重启你的 Mac。

重启后,/med 将出现在文件系统的根目录下,任何尝试写入 /med 的操作实际上都会被重定向到 /path/to/actual/directory。这样,你就可以在不修改 Logback 配置的情况下,让你的应用成功写入日志了。

请注意,虽然这个方法避免了修改系统安全设置的需要,但建议只在真正需要时使用,并确保你了解它的工作原理及其对系统的潜在影响。