我正在使用 Sublime Text 进行 Web 开发。每次我尝试保存更改(Ctrl+S)时,都会弹出身份验证窗口:
需要身份验证才能以超级用户身份运行“/bin/cp”
显然,当我输入密码时,Sublime 会正确保存更改。但是当我按取消,另一个窗口弹出错误:
错误:administrator_copy_file(/tmp/.Some_File_Here,/var/www/Rest_Of_Path_Here)失败:授权失败
由于我对 Ubuntu 还不太熟悉,我不知道如何摆脱授权弹出窗口。我拥有所有权限/var/www文件夹。
答案1
您无权写入/var/www/Rest_Of_Path_Here
。ST3 正在尝试提升其 UID 以作为正确用户写入(因此出现 sudo 提示)。我不知道它可以做到这一点,但我已经测试过了,它确实有效,所以就这样了。
有几种方法可以解决这个问题:
允许您的用户直接写入文件。这里有很多选择:
chown
文件,因此您拥有它们。这可能会扰乱以其他用户身份运行的东西,这些用户可能也需要写入,例如以 www 用户身份运行的 Web 服务器。您可能也需要更改他们以何种身份运行。- 将您的用户添加到
www-data
组并更改文件掩码,774
以便组成员可以写入/执行。 - 更改文件掩码以便其他用户可以写入(例如 777)...但如果服务器上已经存在恶意软件,这将非常危险。
- 使用ACL允许您的用户在不干扰标准权限框架的情况下进行写入。
将您的工作流程更改为以您的用户身份写入版本控制系统(例如 git),然后在其他用户签出时运行脚本。这还有其他好处。
以具有写入权限的用户身份运行 ST3:
sudo -u www-data subl /var/www/Rest_Of_Path_Here
这比仅仅修复文件要糟糕得多。
答案2
我遇到了同样的问题,并且能够通过向我必须在 Sublime text 3 中编辑的特定文件夹提供用户权限来解决该问题。我使用了以下命令:
sudo chmod 775 -R projectname/
sudo chown username -R projectname/
我认为这将来可能会对其他人有帮助。
答案3
根据您使用的 Ubuntu 版本,通过以下方式之一将您的用户添加到管理员用户组。请尝试以下两种方式:
sudo usermod -a -G admin username
或者
sudo usermod -a -G sudo username
如果您已经在管理员组中,请尝试chown
该文件夹。
答案4
在 Linux/Unix 终端中执行以下操作:
sudo chmod -R 777 project-name
sudo chown user-name project-name
尝试过-R 775
,但没有用,所以-R 777
这个技巧还是奏效了,尽管我已授予所有项目的写入权限