PopOS(Ubuntu)系统如何以root权限正常启动VS Code
以Root身份运行Visual Studio Code绕过启动报错方案
问题背景
- 运行环境:基于Ubuntu的Pop!_OS操作系统
- 启动报错:"You are trying to start Visual Studio Code as a super user which isn't recommended. If this was intended, please add the argument
--no-sandboxand specify an alternate user data directory using the--user-data-dirargument." - 实际需求:开发网站项目需要Root权限操作文件,需绕过报错正常启动Root身份的VS Code
VS Code内置的Root启动校验逻辑如下:
# If root, ensure that --user-data-dir or --file-write is specified 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 add the argument \`--no-sandbox\` and specify an alternate user data directory using the \`--user-data-dir\` argument." 1>&2 exit 1 fi fi
具体解决方法
从校验逻辑可以看出,Root身份启动时只要传入--user-data-dir参数即可通过校验,同时按照报错提示补充--no-sandbox参数可解决Root环境下的沙箱运行冲突。
临时命令行启动
终端执行以下命令即可直接启动:
sudo code --no-sandbox --user-data-dir=/root/.vscode-root
参数说明:
--no-sandbox:关闭Chromium沙箱限制,适配Root运行的权限要求--user-data-dir=/root/.vscode-root:指定Root用户专属的VS Code配置、缓存存储目录,避免和普通用户运行的VS Code产生文件冲突
永久修改桌面启动项
如果需要从应用菜单点击图标直接启动,可修改桌面快捷方式配置:
- 编辑VS Code的桌面配置文件:
sudo nano /usr/share/applications/code.desktop - 找到所有以
Exec=开头的配置行,在原有启动命令后追加两个参数,例如默认行Exec=/usr/share/code/code %F修改为Exec=/usr/share/code/code --no-sandbox --user-data-dir=/root/.vscode-root %F - 保存退出编辑器后,执行
sudo update-desktop-database刷新桌面配置缓存即可。
安全提示:Root身份运行图形程序存在潜在安全风险,若条件允许,优先通过
chown/chmod调整项目目录权限,使用普通用户身份运行VS Code完成开发操作。
内容的提问来源于stack exchange,提问作者ryanmcblade
相关产品推荐
相关产品推荐

