WSL中的VSCode:如何对根文件进行sudo,以便我可以对其进行编辑

时间:2019-11-21 17:16:01

标签: visual-studio-code sudo windows-subsystem-for-linux vscode-remote

WSL v.1-VSCode v1.40.1(使用“ Remote-WSL”扩展名40.3)

如何使用sudo和VSCode打开根目录文件进行编辑?

如果我打开不带sudo的根文件,则无法对其进行编辑(预期):     $代码/etc/profile.d/custom-profile.sh     $

enter image description here

但是,如果我尝试sudo code文件,则会得到:

$ sudo code /etc/profile.d/custom-profile.sh
[sudo] password for xxxx:
sudo: code: command not found

6 个答案:

答案 0 :(得分:10)

您可以拥有要编辑的文件,然后再将其归还所有权

sudo chown myuser /path/to/file
code /path/to/file
sudo chown root /path/to/file

答案 1 :(得分:2)

当前,我能够实现此目标的唯一方法是使用rmate

1。在WSL VM上安装rmate

sudo wget -O /usr/bin/rmate https://raw.githubusercontent.com/aurora/rmate/master/rmate
sudo chmod a+x /usr/bin/rmate

我在这里使用Debian Buster WSL,但是您可以根据您的操作系统或偏好,在$ PATH中用适当的文件夹替换/usr/bin

2。安装远程VS Code插件

enter image description here

确保在添加插件后在WSL上启用了扩展程序。

这是我配置远程VS Code插件的方式

File -> Preferences -> Settings

enter image description here

3。启动VSCode rmate服务器

按F1并运行“搜索” Remote: Start Server命令。

enter image description here

4。编辑您的特权文件

启动WSL实例并打开一个终端。如果您已正确完成所有操作,则即使您不是root用户,您现在也应该能够在编辑器中使用sudo权限编辑文件。

sudo rmate /etc/profile.d/custom-profile.sh

答案 2 :(得分:1)

我遇到了同样的错误,编辑后我无法在 vscode 中保存任何文件,它通过以下命令解决:

unsafe { .. }

它对我有用,希望它也对你有用。 谢谢

答案 3 :(得分:0)

通过VS Code以root身份登录SSH

不知道这是否是最好的方法,但对我有用。请注意,这仅应用于首先具有root权限的文件。我认为保存的文件将归root用户所有。使用它可以快速更改某些设置,但不编写普通用户可以完成的代码。

1。在WSL上安装ssh-server

sudo apt install ssh

2。允许以root用户身份远程登录。

PermitRootLogin yes内编辑或添加/etc/ssh/sshd_config

3。重新启动SSH服务器

sudo service ssh stop
sudo service ssh start

4。用VS Code连接到WSL

Ctrl + Shift + P-> Remote SSH: Add new ssh host-> root@127.0.0.1 接受所有指纹和其他东西,您就可以进入根目录。您应该现在就可以执行任何操作。

答案 4 :(得分:0)

在powershell中输入此内容,然后按“ Enter”

ubuntu config --default-user root

然后您将以root用户身份登录wsl,您现在可以执行任何操作

答案 5 :(得分:0)

设置环境变量:

export VISUAL="code -nw"

然后,您可以编辑以下任何文件:

sudo -e file

它将自动创建文件的副本,并在关闭编辑器时将其复制回去。