如何解决在终端中运行Sublime Text 3时出现“Permission Denied”的问题?

10

该系统是Mac OS X El Capitan,正在运行Sublime Text 3。

我以前可以从终端运行ST3,并使用符号链接键入"subl"。我不知道可能发生了什么变化。

现在每当我尝试从任何给定的目录中的终端启动subl(通过运行“subl。”)时,我会每5秒钟收到一次“权限被拒绝”窗口。

[Sublime打开指定的目录,无论它是什么,然后每次我切换回ST3时,窗口都会弹出“权限被拒绝”]

ST的控制台中唯一的消息是:“错误:权限被拒绝”。

从GUI(而非CLI)打开Sublime Text时,根本不会发生这种情况。


我把这个帖子发到了Sublime Text的论坛上: http://www.sublimetext.com/forum/viewtopic.php?f=3&t=21987 - Jonathan Soifer
我会使用 sudo opensnoop,可能会用 grep 进行过滤,尝试确定是否有任何失败的文件系统请求与错误相对应。 - Alexander O'Mara
我的解决方案与Gavy的答案类似,但是一个小改变解决了我的问题。Gavy提到的所有步骤都是一样的,唯一的例外是当你查看权限时,你还需要点击你的用户的设置按钮,并确保点击“应用于包含的项目...”。我的用户已经在文件夹上拥有读写权限,但是我们的repo出了点问题,我不能再使用我的用户在主文件夹内的某些位置进行写入操作。希望能帮到你。 - Rob Orr
8个回答

7
如果你已经在Sublime 3中安装了Git,当你删除任何一个在Github上托管的项目文件或文件夹时,会出现错误和弹出窗口“权限被拒绝”。
解决方案:删除Git包并重新安装它。你可以执行cmd+shift+p,选择“Package Control: Disable Package”,然后选择Git。
希望能对你有所帮助。

2

通过在恢复模式下重新启动(启动时按cmd + r),然后进入实用工具 > 终端,禁用csrutil

csrutil disable

然后像平常一样重启您的Mac。 csrutil 应该会执行此操作,但我听说其他人可能还需要禁用 Gatekeeper…

在终端中使用以下命令禁用 Gatekeeper:

sudo spctl --master-disable


我已经在恢复模式下从终端禁用了 csrutil。但这并没有帮助解决问题。 我还从常规会话中禁用了 gatekeeper。但这也没有起作用。还有其他的想法吗?可能是什么原因导致这个问题发生? - Jonathan Soifer
嗯,那就不确定了。我猜你可以通过一路进入文件路径并使用右键单击 > 获取信息 > 共享和权限来更改每个文件夹的权限。我知道你可以在终端中快速手动完成所有封闭文件夹的操作,只是不记得命令是什么了。 - Arthur
但是我应该更改Sublime Text应用程序文件夹的权限还是我正在尝试打开的文件夹的权限呢? 不确定这是否清楚:使用subl符号链接打开任何文件夹都会发生这种情况。这是否意味着我需要为每个新项目每次都这样做? - Jonathan Soifer
另外,为什么我似乎是唯一一个遇到这个问题的人?你有没有见过其他人有同样的问题?我找不到任何关于这个问题的其他帖子/问题。 - Jonathan Soifer
1
如果你不知道自己在做什么,这是一个危险的建议。运行此操作将禁用系统完整性保护功能 - 一项安全功能。你不应该需要这样做。 - Dan2552

1
从GUI界面,进行“文件>另存为…”并再次导航到该文件夹,这样可以清除它。我一直在Finder中重新组织文件夹和文件,打开其中一个,尝试执行“另存为…”时出现错误。
我通过“文件>获取信息”检查了文件和文件夹权限,但那里的一切都很好。不确定为什么Sublime Text会混淆。

1
简单解决方案: 当你在Sublime Text中保存文件时,它会询问文件的位置。检查默认保存位置是否为“/”目录。如果是,请更改目录位置,因为您没有权限在/文件夹中创建新文件。 注意:如果Sublime没有询问目录,请使用“另存为”选项。

1
  1. 右键单击您的主文件夹。
  2. 获取信息
  3. 共享和权限。(必要时解锁)
  4. 添加一个新用户并将自己加入该组。按确定。
  5. 将您的特权从“只读”更改为“读写”。
  6. 等待更改完成,然后尝试保存。现在应该能够保存了。

1
我能找到的唯一方法是完全禁用所有插件。
这样就停止了错误消息。现在我正在逐个启用它们,目前为止一切正常。

0
在控制台中运行sudo /Applications/Sublime\ Text.app/Contents/MacOS/Sublime\ Text。 它将以root用户身份打开一个新的Sublime窗口。

0
在我的OS X El Capitan上,从应用程序图标启动Sublime Text 3时,它会遇到环境PATH的问题。结果,它发现了苹果的git在/usr/bin/git,并且每10秒就会出现“权限被拒绝”。然而,从命令行启动时,根据我对Sublime和路径的了解,我假设它将使用bash会话中现有的PATH,并找到位于/usr/local/bin/git的MY git安装。由于某种原因,它没有这样做,必须使用另一个git或根本找不到任何git。
我的解决方法: 我编辑了我的Git.sublime-settings(Sublime Text>首选项>软件包设置>Git>设置-用户),然后“权限被拒绝”弹出窗口停止了。我从应用程序图标和CLI重新启动了几次,问题已经解决了。工具> Git命令都可以正常工作,没有任何问题了。
Git.sublime-settings file:
{
  "git_command": "/usr/local/bin/git"
}

使用你的 git 安装路径。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接