macOS根目录上无法写入文件和创建目录的问题

8 篇文章 0 订阅
1 篇文章 0 订阅

问题起源:springboot项目启动报错 在根目录下无法创建/data 存放项目日志

Failed to create parent directories for [/home/app/log/myweb/myweb.log]

试着手动创建去解决,失败

admin@admindeMacBook-Pro-2 ~ % cd /         
admin@admindeMacBook-Pro-2 / % sudo mkdir data
Password:
mkdir: data: Read-only file system

遂搜寻解决方案,搜寻关键词:mac 根目录无法创建 mac / 权限 log mac 启动项目 文件夹 mac 运行项目 文件夹 mac 启动项目 权限 mac 运行项目 权限

根目录无法创建文件夹

此故障出现在10.15 Catalina版本及以后,系mac新的安全性策略所带来的欢快

我的开发环境:macOS 11.3 Big Sur

0.手动修改配置文件 日志写入路径

我的解决方法之一

## 原配置
logdir: /home/apps/MyWeb/${logback.appname}

## 本地修改路径
logdir: /Users/WebApp/Log/MyWeb/${logback.appname}

都是团队开发,此法不建议使用,git 极不方便

1.关闭SIP,/ 下新建软连接到用户 /data

SIP 全称为「System Integrity Protection」即「系统完整性保护」,是系统级的权限操作,我们无法直接关闭它,需要前往「macOS 恢复功能」下进行。

先查看SIP状态:csrutil status 默认enabled。

此法不是苹果官方推荐,但貌似Catalina可用,BigSur不可用。

  • 1.重启电脑 长按command+R 进入安全模式

  • 2.关闭SIP:打开命令控制台输入 csrutil disable

  • 3.重启电脑(正常启动)

  • 4.打开 terminal 输入 csrutil status 此时状态应该是 disabled

  • 5.在 terminal 中继续输入 sudo mount -uw / big sur下此命令会failed的

  • 6.将需要的目录软链接到根目录

    sudo ln -s /Users/WebApp/Log/

  • 7.重复1,2,3步骤,第2步命令修改为 csrutil enable

2.man synthetic.conf,官方软连接方案

最终解决办法,Big Sur可用,Monterey未知。

## 0.查看synthetic.conf说明
man synthetic.conf
## 1.vim 修改synthetic.conf(没有会创建)
sudo vim /etc/synthetic.conf

## 2.添加一行记录(使用 tab 进行分割,空格 换行,使用空格分割会发现重启无效)

## 以此处举例

Log    /Users/WebApp/Log/

## 重启后,在根目录下已经创建好 data 软连接到 /Users/WebApp/Log/
ls -al
......
lrwxr-xr-x   1 root  wheel    17  7 21 14:45 data -> /Users/WebApp/Log/
......
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值