如何在没有 --user-data-dir 参数的情况下以 root 身份运行 Visual Studio Code?

如何在没有 --user-data-dir 参数的情况下以 root 身份运行 Visual Studio Code?

我可以使用以下命令运行 VS 代码

sudo code ~/.zshrc --user-data-dir="/root/.vscode"

但这让我很烦恼。
我该如何配置才能以 root 身份运行 VScode,而无需 --user-data-dir 参数?

答案1

您可以尝试添加-Hsudo 参数:

 -H, --set-home
             Request that the security policy set the HOME environment
             variable to the home directory specified by the target user's
             password database entry.  Depending on the policy, this may be
             the default behavior.

那将是:

sudo -H code ~/.zshrc

这样,~/.zshrc仍然会引用您的呼叫用户.zshrc,但的主目录code将显示为 root 的主目录(~root)。

虽然你正在做的事情(以 root 身份运行 vs code)听起来不对。也许你有你的理由,但一般来说,不建议以 root 身份运行程序。

答案2


按着这些次序 :

  1. sudo chown -R <current_user> <path_to_your_vscode_installation_directory>
  2. 根据您的要求,用户将是
    用户:
  3. 您可以使用以下命令找到 vscode 目录的路径:
    whereis code
    例如路径可以是:/usr/share/代码
  4. 因此最终命令将是:
    sudo chown -R root /usr/share/code

这将运行 vscode 作为无需–用户数据目录争论。

答案3

我也一直在寻找这个答案,并拼凑了几个不同的答案,得出一个简单的脚本,在每次 VSCode 更新后运行一次:

#!/bin/bash
sed -i '/^#!.*/a set -- "$@" "--no-sandbox" "--user-data-dir=~"' /usr/bin/code
sed -i '/^ELECTRON=.*/i VSCODE_PATH="/usr/share/code"' /usr/bin/code
sed -i 's!/code !&--no-sandbox --user-data-dir=~ !' /usr/share/applications/code.desktop

第一个 sed 总是附加修复参数。第二个 sed 修复应用程序启动路径。这些导致 VSCode 从命令行正确启动。但是,最后一个 sed 修复了菜单项,以便从 (debian) 开始菜单启动它会导致应用程序加载。

相关内容