Mac M1 修改/usr/bin文件夹显示permission denied 没有权限的问题

1. 修改/usr/bin文件夹,显示permission denied 

 由于系统启用了SIP(System Integerity Protection)导致root用户也没有修改权限,所以我们需要屏蔽掉这个功能.

(1)进入恢复模式:关机状态下,长按电源键直至进入选项界面

(2)关闭SPI:进入终端,输入csrutil disable

(3)重启进入正常模式,进入终端,输入csrutil status ,检查状态确保关闭成功,显示以下即可;

System Integrity Protection status: disabled.

注:修改完成后,要恢复SPI:进入终端,输入csrutil enable。

2. 显示Read-only file system

unable to copy extended attributes to /usr/bin/...: Read-only file system

2.1 第一种解决方法:(对Mac M1无效)

重新以可读可写的方式挂载文件系统

sudo mount -uw /

注:重启挂载会失效,需要重新挂载。

若出现:

mount_apfs: volume could not be mounted: Permission denied

mount: / failed with 66

注:在 macOS Catalina 及之前版本中,可以通过关闭 SIP 并在终端中更改 system 文件夹为可写入。但是,这一后门在2020年6月发布的 Big Sur 中被关闭了。

2.2 第二种解决方法:(对Mac M1,创建可读写的目录只能在根目录下建立,在/usr/bin下建立无效)

(1)先在home目录下创建一个可以读写的目录,例如/Users/xjx/data

(2)sudo vim /etc/synthetic.conf

(3)在synthetic.conf文件中添加一行

data    /Users/xjx/data

中间的分隔符一定要是tab

注:/Users/xjx/data是你自己创建的可读写的目录,可以自定义。用来做为data实际存储的目录。重启后会创建一个data的软链接,指向/Users/xjx/data

注:该只能在home下建立,如果data改为/usr/bin/data,则不能正常建立软链接。

(4) 重启即可

参考资料:https://blog.csdn.net/chinamen1/article/details/109760125  |  https://blog.csdn.net/chinamen1/article/details/109760125

2.3 第三种解决方法:

解决思路是: 将系统重新挂载在到一个有读写权限的新目录下,在该目录下操作即可。见第一个参考链接。

参考资料:https://www.zhihu.com/question/403361335  | https://discussionschinese.apple.com/thread/252037700

### 解析权限被拒绝问题 当遇到 `-bash: /usr/bin/id: Permission denied` 类似错误时,这通常意味着 `/usr/bin/` 下的关键二进制文件失去了执行权限。此类情况可能由多种因素引起,包括但不限于文件系统损坏、恶意软件攻击或误操作。 #### 文件权限恢复方法 对于上述提到的情况,可以尝试通过以下几种方式来解决问题1. **使用Live CD 或 Live USB 进行修复** 如果本地环境已经严重受损,建议启动进入Linux Live环境来进行修复工作。这种方法能够绕过当前系统的限制,从而更安全有效地处理权限问题[^4]。 2. **利用其他具有适当权限的工具** 当某些命令不可用时,可寻找替代方案完成相同功能。例如,在 `id` 命令失效的情况下,可以通过读取 `/etc/passwd` 文件获取用户ID信息: ```shell cat /etc/passwd | grep root ``` 3. **重新安装受影响包** 对于因权限丢失而无法正常工作的程序,可以直接从源码编译或者借助网络镜像站下载对应的RPM包并强制覆盖安装,以此恢复正常的文件属性和权限设置。具体做法如下所示: ```shell rpm --force -ivh http://mirror.centos.org/centos/7/os/x86_64/Packages/coreutils-8.22-20.el7.x86_64.rpm ``` 4. **调整SELinux策略配置** SELinux的安全上下文可能导致部分路径下的文件即使拥有正确权限也无法被执行。此时应检查相关日志(`/var/log/audit/audit.log`)确认是否存在与此有关的日志条目,并考虑临时关闭SELinux服务以便进一步排查问题所在。 关闭SELinux的方法为编辑 `/etc/selinux/config` 将其中的 `SELINUX=enforcing` 修改成 `SELINUX=permissive` 后重启机器生效。 5. **应用特定场景下的快速修复脚本** 针对特殊情况下(如腾讯云服务器),官方文档提供了专门用于重置 `chmod` 及其依赖项权限的小型Shell脚本,按照指引一步步操作即可恢复正常状态。 ---
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值