Java程序写入文件到 Mac /usr 目录下无权限问题

换新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,无法在根目录创建文件夹解决办法

  1. 重启电脑,按住 cmd+R进入恢复模式
  2. 关闭SIP: csrutil disable,然后重启
  3. 重新挂载根目录: sudo mount -uw /,接下来划重点:现在已经可以在根目录创建文件夹,但是,你在根目录创建之后,一旦重启电脑,你创建的目录又是只读权限了。所以,正确的做法是把你需要的目录软链接到根目录, 例如: sudo ln -s /Users/fangjunqiang/data /data
  4. 重新进入恢复模式,重新打开SIP: csrutil enable

删除软链接: sudo unlink /data

ln [option] source_file dist_file

-f 建立时将同档案删除

-i 删除前进行询问

-s 建立软链接

ln source dist 建立硬链接

多翻尝试后采用了第一个方法,虽然程序写入文件不是在 /usr/local 下,那就改一下程序路径,就这么着吧。后续继续看看有没有更好的方法。。。

    原文作者:小方同学_
    原文地址: https://blog.csdn.net/junoohoome/article/details/107968513
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞