换新Mac,发现程序写入文件到 Mac /usr 目录下无权限问题,遂查找一番,得出两种方法:
原因可以看下官方说明:https://support.apple.com/zh-cn/HT204899
一、Mac /usr/local 文件夹权限问题
修改文件夹权限
sudo chown -R $(whoami) /usr/local/
如果失败提示Operation not permitted 或其他权限不足,则需要关闭Rootless
Rootless 苹果从 OS X El Capitan 10.11 系统开始使用了 Rootless 机制,系统默认将会锁定 /system、/sbin、/usr 这三个目录。用户要获取这三个目录的写权限,需要关闭Rootless
关闭Rootless
- 重启 Mac
- 开机时后按下 Command+R,进入恢复模式。
- 在上面的菜单实用工具中找到并打开 Terminal
- 输入如下命令:
csrutil disable
- 重启MAC,正常进入系统,此时已经可以给/system、/sbin、/usr 者几个目录进行权限更改
- 打开 Terminal
- 输入如下命令:
sudo chown -R $(whoami) /usr/local/
用完记得修改回来
csrutil enable
二、 Mac升级10.15 Catalina,无法在根目录创建文件夹解决办法
- 重启电脑,按住 cmd+R进入恢复模式
- 关闭SIP: csrutil disable,然后重启
- 重新挂载根目录: sudo mount -uw /,接下来划重点:现在已经可以在根目录创建文件夹,但是,你在根目录创建之后,一旦重启电脑,你创建的目录又是只读权限了。所以,正确的做法是把你需要的目录软链接到根目录, 例如: sudo ln -s /Users/fangjunqiang/data /data
- 重新进入恢复模式,重新打开SIP: csrutil enable
删除软链接: sudo unlink /data
ln [option] source_file dist_file
-f 建立时将同档案删除
-i 删除前进行询问
-s 建立软链接
ln source dist 建立硬链接
多翻尝试后采用了第一个方法,虽然程序写入文件不是在 /usr/local 下,那就改一下程序路径,就这么着吧。后续继续看看有没有更好的方法。。。