WSL v.1-VSCode v1.40.1(使用“ Remote-WSL”扩展名40.3)
如何使用sudo和VSCode打开根目录文件进行编辑?
如果我打开不带sudo
的根文件,则无法对其进行编辑(预期):
$代码/etc/profile.d/custom-profile.sh
$
但是,如果我尝试sudo code
文件,则会得到:
$ sudo code /etc/profile.d/custom-profile.sh
[sudo] password for xxxx:
sudo: code: command not found
答案 0 :(得分:10)
您可以拥有要编辑的文件,然后再将其归还所有权
sudo chown myuser /path/to/file
code /path/to/file
sudo chown root /path/to/file
答案 1 :(得分:2)
当前,我能够实现此目标的唯一方法是使用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
。
确保在添加插件后在WSL上启用了扩展程序。
这是我配置远程VS Code插件的方式
File -> Preferences -> Settings
按F1并运行“搜索” Remote: Start Server
命令。
启动WSL实例并打开一个终端。如果您已正确完成所有操作,则即使您不是root用户,您现在也应该能够在编辑器中使用sudo权限编辑文件。
sudo rmate /etc/profile.d/custom-profile.sh
答案 2 :(得分:1)
我遇到了同样的错误,编辑后我无法在 vscode 中保存任何文件,它通过以下命令解决:
unsafe { .. }
它对我有用,希望它也对你有用。 谢谢
答案 3 :(得分:0)
不知道这是否是最好的方法,但对我有用。请注意,这仅应用于首先具有root权限的文件。我认为保存的文件将归root用户所有。使用它可以快速更改某些设置,但不编写普通用户可以完成的代码。
sudo apt install ssh
在PermitRootLogin yes
内编辑或添加/etc/ssh/sshd_config
sudo service ssh stop
sudo service ssh start
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
它将自动创建文件的副本,并在关闭编辑器时将其复制回去。