保存文档时的 Sublime Text 3 身份验证问题

SON*_*NGE 14 permissions

我正在使用 Sublime Text 进行 Web 开发。每次尝试保存更改(Ctrl+S)时,都会弹出身份验证窗口:

以超级用户身份运行“/bin/cp”需要身份验证

显然,当我输入密码时,Sublime 会正确保存更改。但是当我按下Cancel 时,另一个窗口会弹出一个错误:

错误:administrator_copy_file (/tmp/.Some_File_Here, /var/www/Rest_Of_Path_Here) 失败:授权失败

由于我对 Ubuntu 很陌生,我不知道如何摆脱该授权弹出窗口。我拥有/var/www文件夹的所有权限。

Oli*_*Oli 6

您无权写入/var/www/Rest_Of_Path_Here. ST3 正在尝试提升其 UID 以写入正确的用户(因此出现 sudo 提示)。我不知道它可以做到这一点,但我已经对其进行了测试,它可以正常工作,所以你去吧。

有几种方法可以解决这个问题:

  1. 允许您的用户直接写入文件。这里有很多选择:

    • chown文件,以便您拥有它们。这可能会扰乱以其他用户身份运行的东西,这些用户可能也需要编写,例如以 www-user 身份运行的网络服务器。您可能还需要更改它们的运行方式。
    • 将您的用户添加到www-data组并将文件掩码更改为,774以便组的成员可以写入/执行。
    • 更改文件掩码以便其他用户可以写入(例如 777)...但如果服务器上已经存在恶意内容,则这是非常危险的。
    • 使用ACL允许您的用户在不干扰标准权限框架的情况下进行写入。
  2. 更改您的工作流程以作为您的用户写入版本控制系统(例如 git),然后在其他用户检出时运行脚本。这带来了其他好处。

  3. 以可以写入的用户身份运行 ST3:

    sudo -u www-data subl /var/www/Rest_Of_Path_Here
    
    Run Code Online (Sandbox Code Playgroud)

    这比仅仅修复文件要丑陋得多。


小智 5

我遇到了同样的问题,并且能够通过向我必须在 Sublime text 3 中编辑的特定文件夹提供用户权限来解决它。我使用了以下命令:

sudo chmod 775 -R projectname/   
sudo chown username -R projectname/
Run Code Online (Sandbox Code Playgroud)

我认为这可能对将来对其他人有所帮助。