保存文档时升华文本3身份验证问题


11

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

需要身份验证才能以超级用户身份运行'/ bin / cp'

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

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

由于我是Ubuntu的新手,所以我不知道如何摆脱这种授权。我拥有对/ var / www文件夹的所有权限。


您确定您的用户具有写入权限而/var/www没有成为root用户(例如,使用sudo)?
戴维·贝利

@DavidBailey我具有/var/www子文件夹的写权限,但没有这些子文件夹的写权限。我已经做完了chown/var/www但是当我检查了子文件夹的权限时,例如。/var/www/First_Site,它属于www-data。我以为chown在主文件夹上也会给我其中所有子文件夹/文件的权限。
2015年

Answers:


6

您无权写入/var/www/Rest_Of_Path_Here。ST3试图提升其UID以便以正确的用户身份进行写入(因此为sudo提示符)。我不知道它可以做到这一点,但我已经对其进行了测试,并且可以正常工作,所以您就可以了。

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

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

    • chown文件,因此您拥有它们。这可能会使以其他用户身份(也可能需要写)运行的事情(例如,以www-user身份运行的Web服务器)无法正常运行。您可能还需要更改它们的运行方式。
    • 将您的用户添加到该www-data组,然后将文件掩码更改为,774以便该组的成员可以写入/执行。
    • 更改文件掩码,以便其他用户可以写(例如777)...但是,如果服务器上已经存在恶意软件,这将非常危险。
    • 使用ACL允许您的用户编写而不会打扰标准权限框架。
  2. 更改您的工作流程,以用户身份写入版本控制系统(例如git),然后以其他用户身份运行脚本。这带来了其他好处。

  3. 以可以在此处编写代码的用户身份运行ST3:

    sudo -u www-data subl /var/www/Rest_Of_Path_Here
    

    这比仅修复文件要难看得多。


你是对的。我只有/ var / www文件夹的权限,而没有属于该文件夹的所有子文件夹的权限www-data。我认为最好的解决方案是将我的用户添加到www-data群组中。
SONGE,2015年

只是让任何人知道。将我的用户添加到www-data组即可解决此问题。之后,我只需要重新启动系统即可。谢谢@Oli。
2015年

4

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

sudo chmod 775 -R projectname/   
sudo chown username -R projectname/

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


非常感谢:)
ivahidmontazer '19

0

根据您使用的Ubuntu版本,通过以下方式之一将用户添加到管理员用户组。同时尝试:

sudo usermod -a -G admin username

要么

sudo usermod -a -G sudo username

如果您已经在admin组中,请尝试chown在文件夹上输入。


为什么?各种建议都表明他们已经在sudo / admin组中(当他们输入密码时它会起作用)。
奥利(Oli)

chown@Oli
Sharad Gautam

0

我也遇到同样的问题,试图用sublime-text编辑apache服务器的文件,但我不想弄乱我的web服务器的许可。更改文件g + w并将用户置于www-data组不是一个非常安全的主意。

我建议使用SFTP插件生成sublime-text:

  • 将您的网络服务器的文件复制到属于您自己的用户的文件夹中
  • 使用以下命令配置SFTP插件:
"upload_on_save": true,
"host": "localhost",
"user": "www-data",

不要在配置中提供密码,因为这也是一个主要的安全漏洞。

Sublime-text会询问您一次密码,然后在会话中记住该密码。保存每个文件后,它将打开一个与localhost的sftp会话,并将使用适当的用户将该文件写入磁盘。


0

在Linux / Unix终端上执行以下操作:

sudo chmod -R 777 project-name
sudo chown user-name project-name

尝试过但-R 775没有-R 777成功,尽管我已授予所有项目的写许可权,但窍门也没有

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.