如何使用管理员权限打开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权限打开,请帮助我。

如何使用管理员权限打开Visual Studio Code以使已安装的扩展生效

使用超级用户运行:

$ sudo code --user-data-dir=~/root

顺便说一下,在即将到来的1.5.0补丁中,您将能够在不设置参数的情况下运行

您可以通过以下两种方式实现:

  • 运行vscode 超级用户:
    $ sudo code --user-data-dir=~/root
    这将打开vscode没有你以前的设置(新鲜)与超级用户权限,你可以安装你的扩展。

    1. sudo chown -R <user> <path_to_your_vscode_installation_directory>
    2. 在终端中按以下键
      查看计算机上的当前用户:
      whoami
      例如john
    3. 你可以使用下面的命令找到vscode目录的路径:
      whereis code
      例如在我的例子中路径:/usr/share/代码
    4. 现在运行:
      sudo chown -R john /usr/share/code
      这将以管理员权限运行vscode

    5. 重置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中,我执行了几个额外的步骤:

    1. 我需要调用sudo告诉它保存环境,因为vscode (X11)需要知道DISPLAY环境变量的值。
    2. 我想重用我现有的数据目录和安装的扩展。
    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-useryour-group对应您的uid/gid,您可以从id命令获取。

    这里有一个关于如何解决错误的逐步解决方案"你正在尝试启动Visual Studio Code作为一个超级用户,不建议"在终端升级VS Code时:

    1. 打开终端窗口,导航到VS Code可执行文件所在的目录。

    2. 执行命令: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服务):简而言之:

    1. 编辑/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/]