当Mac文件被永久锁定后,如:hosts文件无法修改被锁定且无法解锁 您所在的位置:网站首页 mac被锁定如何解锁 当Mac文件被永久锁定后,如:hosts文件无法修改被锁定且无法解锁

当Mac文件被永久锁定后,如:hosts文件无法修改被锁定且无法解锁

2024-01-13 20:20| 来源: 网络整理| 查看: 265

1. 解决「hosts文件不能修改编辑的」的历程

如果不想看历程或者尝试了很多方法,可以直接跳到1.4去看最终解决办法

1.1 个人遇到的问题

我想要在hosts文件里面加配置,然后我按照平时的操作,直接vim /etc/hosts文件,修改后直接保存,直接爆红"/private/etc/hosts" E212: Can't open file for writing 

vim /etc/hosts

如果没有vim,vi也是一样

vi /etc/hosts

图一:

图二:

 OK,应该是需要sudo,然后保存,还是如图二一样。突然发现,readonly,那应该是权限问题

sudo vim /etc/hosts

图三:

 1.2 搜索一下,然后跟着,改权限

1、打开Mac电脑的访达程序, 2、点按电脑快捷键Shift+Command+G或者右键前往文件夹,

3、在弹出的窗口中输入:/private ,点击下边的“前往”;

4、在打开的private文件夹中,右键单击“etc”文件夹,然后选择显示简介;

5、在etc简介界面,点击最下方的锁图标,输入登录密码,点击“好”按钮;

6、把名称下边“wheel”和“everyone”的权限改为“读与写”,

7、打开etc文件夹,右键单击“hosts”文件,也是如上操作,选择“显示简介”;

8、在hosts简介界面,同样点击最下方的“锁”图标,输入登录密码,点击“好”按钮;(想象中的场景)

9、把名称下的“wheel”和“everyone”的权限改为“读与写”,hosts文件修改问题即可解决。(想象中的场景)

想象很美好,现实很打脸,我的右下角,这个小黄锁🔒,他是个置灰的,我压跟改不了,我直接点权限改成读与写,直接如下图 ,百度了很多,基本上都是没有用的,也改不了

1.3 命令修改权限

这图形界面还是改不了,然后我看到我的这个文件上面有一把锁,那我用命令重新这个文件赋权限或者解锁这个文件,不也一样

所以我的搜索目标变成:怎样给一个的文件赋权限和给文件解锁

Action[加油]

通过强大的搜索引擎,我找到以下资料

解锁由sudo chmod 0400命令造成锁定状态的文件。目标是解锁文件,补充信息是该文件的锁定状态是由sudo chmod 0400命令造成的。

通过搜索查询,了解到「解锁」其实就是对文件的读写权限进行改写,0400是只允许所有者读(所有者都不能写),所以我需要将其权限改为所有者可写,经查询,0755,0777等都可以。

使用 sudo chmod 0755 myfile 或 sudo chmod -R 0755 myfile 进行尝试,但显示操作不被允许

sudo chmod 0755 /etc/hosts

这是一个衍生出来的新问题,针对该问题我的搜索目标是:搞清楚sudo chmod命令不被允许的可能原因。

通过搜索查到这样一个问题《chmod/chown on mac not working》,其中有一个回答部分如下:

With certain files you may run into: [sudo] chmod: Operation Not Permitted. This indicates another problem which is down to the OSX/BSD flags system functionality. Any file can have these flags set using the chflags tool, and viewed using ls -lO yourfile (on OSX) ls -lo yourfile (on BSD). The one that causes this particular error is the 'immutable' flag. Which can be unset using (prefixing it with sudo as necessary): chflags nouchg yourfile.

这个回答中指出,当执行[sudo] chmod 相关命令显示不允许操作时,就表明问题可能取决于OSX / BSD 的标志(flags)系统功能。任何文件都可以使用 chflags 工具来设置这些标志(flags),并使用ls -lO yourfile(在OSX上)和ls -lo yourfile(在BSD上)查看,就会发现导致上述特定错误的是 “immutable” 标志。可以使用取消设置(根据需要使用sudo前缀):chflags nouchg yourfile.

sudo chflags nouchg hosts

立即根据回答最后的代码进行尝试,仍然无效。

1.4 无意的发现

有点要发疯了,啊啊啊啊,怎么干啥啥不都行

我就用命令查看了一下,这个文件的信息和权限是什么:ls -lO yourfile

ls -lO /etc/hosts

发现了个奇怪的东西,schg,uchg这是啥东东哦

 突然想起,我之前为了破解pd(Parallels Desktop)好像用了这个命令,破解的链接奉上哈,有需要可以试试,亲测有效

https://github.com/luo345/ParallelsDesktopCrack

1.5 结合之前经验,实际出击

这上面那个命令,不是用这个呢,是不是我要将这个两个都给取消掉呢

chflags nouchg yourfile.有这个命令,那应该也有这个命令吧

chflags noschg yourfile,注意哦,这个两个命令不一样

sudo chflags nouchg /etc/hosts sudo chflags noschg /etc/hosts

两个命令一用,在查看一下文件权限信息,ls -lO /etc/hosts。

果然没有schg,uchg了,点击这个hosts文件的简介,这个锁也没有了

然后vim 里面去,进行修改,就可以了,如果是其他的也可以举一反三,先查看这个文件属性,如果有其他的锁定标签,也是类似于加no去试试



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有