如何以root身份运行Visual Studio Code


40

我最近安装了Visual Studio Code编辑器。我下载了32bit .deb软件包。安装并正常运行,但是当我尝试将文件保存在项目文件夹中时,它返回的权限被拒绝。所以,我用

sudo code .

它返回

It is recommended to start vscode as a normal user.
To run as root, you must specify an alternate user data directory with the --user-data-dir argument.

我寻找了如何使用--user-data-dir参数指定备用用户数据目录,但没有发现太多。

那么,如何在Ubuntu 16.04中以根用户身份运行Visual Studio Code?

编辑:我更喜欢避免更改目录权限的解决方案。

edit2:项目目录:(/var/www/project我在vhost中使用Apache)


6
为什么不只在项目文件夹上设置权限以保存它?
TheWanderer '16

2
我不明白为什么要以root用户身份运行代码;这是潜在的危险。您应该弄清楚无法保存文件的真正原因。
edwinksl

1
您的项目文件夹在哪里
Nuwan Thisara '16

1
@Nuwan /var/www/project(我将Apache与vhost配合使用)
徘徊

Answers:


53

但是,如果绝对需要:以root身份运行VScode(与其他任何应用程序一样)是非常危险的。

您必须指定运行vs代码时要使用的用户数据目录:

sudo code --user-data-dir="~/.vscode-root"

然后从窗口中可以打开您的项目文件夹

再次:不建议这样做。玩得开心。

2018年5月更新

对于每个问为什么不建议这样做的人,您显然都不明白为什么sudo甚至存在。从这个AskUbuntu问题

它破坏了已经存在多年的安全模型。应用程序本应以非管理安全性运行(或作为普通应用程序运行),因此您必须提升其特权才能修改基础系统。例如,您不希望Rhythmbox的最近崩溃是由于一个错误而清除整个/ usr目录。或刚刚在ProFTPD中发布的漏洞,它使攻击者可以获得ROOT Shell。

在任何操作系统上,最好的做法是在用户级别上运行应用程序,并将管理任务留给根用户,并且仅根据需要。

我并不是说您绝对不应该将VSCode用作root用户(尽管这样做很容易避免),我是说您在这样做时应该小心并知道风险。

绝对最好的办法是复制受限制的文件,对其进行编辑,然后在绝对确定完成后将其复制回去。

另外,对于编辑用户没有权限的文件,我现在建议Talha Junaid的答案,它每次您要保存文件时都要求权限。我编写此答案时,不存在用于root用户访问的提示。


4
为什么不建议以root身份运行VScode?例如,如何更改主机中的某些内容?我需要root许可不是吗?
两性离子

1
感谢它的工作:现在我有一个VSCode窗口以root身份运行,我想以root身份启动另一个vscode窗口,这可能吗?
RLaaa

1
是的,可以打开另一个终端。
卢卡斯DAW,

3
@MarcoDufal绝对不是。这是一个可怕的想法。尤其是在使用OS文件时,绝对不应将权限设置为777。这意味着系统上的所有内容,无论是谁启动,启动什么或被允许执行的操作,都具有修改该组文件和文件夹的权限。最多,您应该“拥有”文件,以便可以使用接近755权限的方式编辑文件。
扎瓦塔

3
@zawata,您完全正确!请原谅。感谢您的注意!
马可·杜法

14

万一您想对单个文件进行更改,我希望采用以下方法。

  • 以普通用户身份运行vs代码。
  • 更改文件
  • File -> Save 或按 Ctrl + S
  • vs代码将在右下角显示错误消息

    无法保存“ grub”:权限不足。选择“以管理员身份重试”以管理员身份重试

    在此处输入图片说明

  • 点击Retry as Admin。它将要求管理员凭据

    在此处输入图片说明

  • 输入凭证并享受使用vs代码保存文件的乐趣。


1
有什么方法可以不必每次都对每个文件执行此操作吗?我有数百个文件需要更改,而VS Code一直要求输入密码。我准备将笔记本电脑放在墙上。
约书亚·凯默勒

然后,您可以按照上面给出的可接受的答案进行操作。askubuntu.com/a/820205/367228
Talha Junaid

4

您必须授予您的html文件夹权限。

在您的终端中尝试。

sudo chmod -R 777 /var/www/html/

请确保检查现有项目文件和文件夹的权限。


9
这是有史以来最愚蠢的建议...限制了权限,以阻止恶意进程修改或破坏您的系统。处理受限制文件的副本,然后在完成后将它们复制到位,或者甚至更好地制作一个安装脚本来完成。您也可以将用户添加到拥有目录和文件的组中。
Soren A

cd到您的项目文件夹并运行sudo chmod -R 777 <project_dir_name>并完成
lilhamad

1
cd到您的项目文件夹并运行sudo chmod -R 777 <project_dir_name>并完成
lilhamad
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.