Haw*_*ker 29 sudo visual-studio-code windows-subsystem-for-linux vscode-remote
WSL v.1 -- VSCode v1.40.1(使用“远程 - WSL”扩展 40.3)
如何使用 sudo 和 VSCode 打开根拥有的文件进行编辑?(无需以 root 身份运行)
如果我打开一个没有 的根文件sudo,我将无法编辑它(预期): $ code /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
Run Code Online (Sandbox Code Playgroud)
下面的 Binarify 的回答表明我可以将默认用户切换到root,但我绝对不想以 root 身份运行,所以我仍在寻找其他解决方案。
kir*_*nee 19
您可以拥有要编辑的文件,然后将其归还所有权
sudo chown myuser /path/to/file
code /path/to/file
sudo chown root /path/to/file
Run Code Online (Sandbox Code Playgroud)
Bar*_*ino 14
设置环境变量:
export VISUAL="code -nw"
Run Code Online (Sandbox Code Playgroud)
然后你可以像这样编辑任何文件:
sudo -e file
Run Code Online (Sandbox Code Playgroud)
它会自动创建文件的副本,并且当您关闭编辑器时,将其复制回来。
小智 12
我遇到了同样的错误,编辑后无法在 vscode 中保存任何文件,并通过以下命令解决:
sudo chown -R <user-name> <directory-name>
Run Code Online (Sandbox Code Playgroud)
它对我有用,希望对你也有用。谢谢
目前,我能够实现这一目标的唯一方法是使用rmate。
sudo wget -O /usr/bin/rmate https://raw.githubusercontent.com/aurora/rmate/master/rmate
sudo chmod a+x /usr/bin/rmate
Run Code Online (Sandbox Code Playgroud)
我在这里使用 Debian Buster WSL,但是您可以/usr/bin根据您的操作系统或您的偏好在 $PATH 中替换为适当的文件夹。
确保在添加插件后在 WSL 上启用扩展。
这是我配置远程 VS Code 插件的方法
File -> Preferences -> Settings
按 F1 并运行搜索命令Remote: Start Server。
启动 WSL 实例并打开终端。如果您已正确完成所有操作,即使您不是 root 用户,您现在也应该能够在编辑器中使用 sudo 权限编辑文件。
sudo rmate /etc/profile.d/custom-profile.sh
Run Code Online (Sandbox Code Playgroud)
在 powershell 中输入此内容并按“Enter”
ubuntu config --default-user root
Run Code Online (Sandbox Code Playgroud)
然后你将使用root用户登录wsl,你现在可以做任何事情
不知道这是否是最好的方法,但它对我有用。请注意,这只能用于只有 root 有权访问的文件。我认为保存的文件将归root所有。使用它可以快速更改某些设置,但不要编写普通用户可以完成的代码。
sudo apt install ssh
Run Code Online (Sandbox Code Playgroud)
PermitRootLogin yes里面编辑或添加/etc/ssh/sshd_config
sudo systemctl restart ssh
Run Code Online (Sandbox Code Playgroud)
Ctrl + Shift + P-> Remote SSH: Add new ssh host->root@127.0.0.1
接受所有指纹和其他内容,然后您就以 root 身份进入。你现在应该可以做任何事情了。
如果您从 Windows 商店安装 Ubuntu,则需要在 Windows 命令提示符下运行的命令是
ubuntu config --default-user root
Run Code Online (Sandbox Code Playgroud)
或者
ubuntu1804 config --default-user root
Run Code Online (Sandbox Code Playgroud)
或者
ubuntu2004 config --default-user root
Run Code Online (Sandbox Code Playgroud)
(注意:根据您安装的版本,这可能是 ubuntu1804.exe 或 ubuntu2004.exe)
重启LxssManager服务
sc stop LxssManager
sc start LxssManager
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16784 次 |
| 最近记录: |