如何使用管理员权限打开Visual Studio Code以使已安装的扩展生效
本文关键字:安装 扩展 Code 权限 管理员 何使用 Studio Visual | 更新日期: 2023-09-27 18:02:15
我有Ubuntu 16.04,我必须下载Visual Studio Code的c#扩展,一旦我安装了它,它就不起作用了。然后,vscode给了我和建议,我应该用管理员权限打开vscode,使安装的扩展生效,所以我在我的终端上写道:
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.
,但我不知道如何指定一个备用用户数据目录。我正在搜索如何在visual studio代码文档中做到这一点,但没有这个问题的参考。如果你知道如何在linux中以admin权限打开,请帮助我。
使用超级用户运行:
$ sudo code --user-data-dir=~/root
顺便说一下,在即将到来的1.5.0补丁中,您将能够在不设置参数的情况下运行
您可以通过以下两种方式实现:
- 运行vscode 超级用户:
$ sudo code --user-data-dir=~/root
这将打开vscode没有你以前的设置(新鲜)与超级用户权限,你可以安装你的扩展。
或
-
sudo chown -R <user> <path_to_your_vscode_installation_directory>
- 在终端中按以下键
查看计算机上的当前用户:whoami
例如john - 你可以使用下面的命令找到vscode目录的路径:
whereis code
例如在我的例子中路径:/usr/share/代码 - 现在运行:
sudo chown -R john /usr/share/code
这将以管理员权限运行vscode - 重置owner后返回root
sudo chown -R root /usr/share/code
我的简单解决方案是:
sudo code --verbose --user-data-dir --no-sandbox
(不是root用户,而是root用户)
您可以在visual studio代码中按Shift+Cmd+ p 并键入:
shell command
并按PATH
中的"install"。
然后在你的终端打开你想要打开的文件夹,输入"code",它会以root身份打开visual studio code中的项目。
能够以超级用户身份运行vs code:使用文本编辑器打开代码文件
nano/usr/bin/code
然后注释下面一行代码:
if [ "$(id -u)" = "0" ]; then
for i in "$@"
do
case "$i" in
--user-data-dir | --user-data-dir=* | --file-write )
CAN_LAUNCH_AS_ROOT=1
;;
esac
done
if [ -z $CAN_LAUNCH_AS_ROOT ]; then
echo "You are trying to start Visual Studio Code as a super user which isn't recommended. If this was intended, please specify an alternate user data directory using the '`--user-data-dir'` argument." 1>&2
exit 1
fi
fi
#if [ "$(id -u)" = "0" ]; then
# for i in "$@"
# do
# case "$i" in
# --user-data-dir | --user-data-dir=* | --file-write )
# CAN_LAUNCH_AS_ROOT=1
# ;;
# esac
# done
# if [ -z $CAN_LAUNCH_AS_ROOT ]; then
# echo "You are trying to start Visual Studio Code as a super user which isn't recommended. If this was intended, please specify an alternate user data directory using the '`--user-data-dir'` argument." 1>&2
# exit 1
# fi
#fi
在我的例子中,在OpenSuse tumbleweed中,我执行了几个额外的步骤:
- 我需要调用sudo告诉它保存环境,因为vscode (X11)需要知道DISPLAY环境变量的值。
- 我想重用我现有的数据目录和安装的扩展。
sudo -E code --user-data-dir=$HOME/.config/Code --extensions-dir=$HOME/.vscode/extensions
完成编辑/调试会话后,我需要重置数据目录和扩展名的权限,如下所示:
sudo chown -R your-user:your-group $HOME/.config/Code $HOME/.vscode/extensions
其中your-user
和your-group
对应您的uid/gid,您可以从id
命令获取。
这里有一个关于如何解决错误的逐步解决方案"你正在尝试启动Visual Studio Code作为一个超级用户,不建议"在终端升级VS Code时:
-
打开终端窗口,导航到VS Code可执行文件所在的目录。
-
执行命令:
code --no-sandbox --user-data-dir=/my/custom/data/dir
. c。这将在没有沙箱的情况下启动VS Code,并使用指定的目录存放用户数据。
以root身份运行vscode停止工作(他们删除了--no-sandbox
选项)[https://code.visualstudio.com/updates/v1_59 _progress-for-electron-sandbox-support][https://github.com/microsoft/vscode/issues/146445]
如果你只是想浏览,查看和编辑'根'拥有的目录树(/etc/,/var/lib/,…)作为根使用vscode,你可以通过Remote - SSH
vscode扩展。只需通过ssh以root身份连接到本地主机(您需要运行sshd服务):简而言之:
- 编辑/etc/ssh/sshd_config:
Match Address 127.0.0.1
PermitRootLogin yes
- 执行:
- 通过"远程浏览器"连接到本地主机
# generate ssh private key if you don't have. In my case it's RSA key.
sudo sh -c "cat /home/YOUR_USER/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys"
sudo systemctl restart ssh
# Test that you can connect:
ssh root@localhost
[https://ponteshare.ch/2022/01/vscode-remote-ssh-as-root/]