最近几天在弄一些杂乱的东西,整理一下,方便以后自己查找。
1, mac系统一些目录,就算是使用sudo命令也会被提示没有权限。需要重启电脑,按住commond+R进入 Recovery 模式。然后打开工具中的终端。键入下面命令,关闭SIP(System Integrity Protection)
csrutil disable
然后重启即可。但是要注意,关闭了SIP去操作一些正常模式下被限制的文件夹或文件,容易发生意想不到的错误。
重新打开SIP,同样先到Recovery模式,键入命令
csrutil enable
2, 当不小心使用chmod 777 文件 的时候,可能造成一些问题。有些限制的文件夹或文件权限是不可以更改的。比如,/usr/bin/ 下的login文件。ls -l 可以查看文件或文件夹下文件的访问权限。
他的初始权限为:
ls -l /usr/bin/login
-r-sr-xr-x 1 root wheel 76288 5 30 06:32 /usr/bin/login
可以看到,权限为 -r-sr-xr-x
我们先将他备份到桌面,然后删除/usr/bin/ 下的login。作死,哈哈。(注意删除需要输入密码)
然后打开终端,没问题,OK。关掉终端。
我们再将桌面备份的login ,copy到/usr/bin/ 中。试着打开终端。
Last login: Fri Jul 13 10:09:35 on ttys001
login: login: Could not determine audit condition
[进程已完成]
WTF! 终端打开失败。注意它的提示。果然是和login文件有关。
好,我们查看一下/usr/bin/login的访问权限。等等~~怎么查看。终端打不开啊。
所以,1)先删除/usr/bin/login 2)打开终端 3)重新copy桌面的login文件到/usr/bin 4)通过终端查一下权限
ls -l /usr/bin/login
-r-sr-xr-x 1 xxxxxx staff 76288 5 30 06:32 /usr/bin/login
哎?因为copy是当前登录用户操作的,所以copy后的文件所属也是该用户,和之前的root wheel不同,才导致 “同样的” login放回去,问题发生了。
好,该成之前的就OK
sudo chown root:wheel /usr/bin/login
查看一下。ok了
ls -l /usr/bin/login
-r-xr-xr-x 1 root wheel 76288 5 30 06:32 /usr/bin/login
真的可以了么。不,,权限由 -r-sr-xr-x 变成了 -r-xr-xr-x
继续改,
sudo chmod u+s /usr/bin/login
ls -l /usr/bin/login
-r-sr-xr-x 1 root wheel 76288 5 30 06:32 /usr/bin/login
关闭终端再打开,试试 :P
类似的问题如果出现,只要将权限都改回来就好。
3, MacOS 不小心忘记了管理员账号或密码~~那就重新创建一个管理员账户。
重启按住command+S进入单一用户模式。依次输入如下命令:
/sbin/mount -uaw
rm /var/db/.applesetupdone
reboot
重启后会重新设置一个管理员用户。之后进入设置中的用户和群组就可以对其他用户进行提权,找回什么的了。