【Mac OS】Mac部分目录读写提示“Operation not permitted”解决

文章目录

    • 问题产生
    • 问题分析
    • 问题解决
      • 关闭Rootless
      • 打开Rootless

问题产生

今天在将mac默认安装的python2.7升级为python3时,终端运行:

sudo mv /usr/bin/python /usr/bin/python_old

提示“Operation not permitted”,操作不成功。

问题分析

笔者在此前一天刚把Ubuntu 18.04 LTS的Python2升级为Python3,同样的方法并未提示操作不成功。故而推测可能是Mac在系统层面对某些目录增加了保护机制,即使root权限用户也不可读写。

问题解决

查阅资料,发现是Mac OSX 系统中有一项Rootless机制,即使在root权限下也不能所以读写某些特定路径的文件。Rootless可以有效防止恶意程序对电脑的破坏,平时建议保持开启状态。
为了实现上述目的,我们选择手动关闭Rootless,在升级完Python之后再将其打开。

关闭Rootless

重启电脑,按住Command+R进入恢复模式,点击菜单开启Terminal,输入:

csrutil disable

重启电脑即可。

打开Rootless

同样进入恢复模式,输入:

csrutil enable

如上所说,建议平时保持Rootless机制的开始,可以有效防止电脑遭受恶意程序的破坏。

你可能感兴趣的:(操作系统)