如何在Visual Studio 2019中以root身份运行调试Linux可执行文件?
解决VS2019远程调试Linux程序以root身份运行的问题
下面是几个可行的方案,按操作便捷度排序:
方案1:修改调试启动命令 + 配置免密sudo
- 先在远程Ubuntu机器上配置普通用户免密运行目标程序:
- 执行
sudo visudo打开sudoers配置文件 - 在文件末尾添加一行:
你的普通用户名 ALL=(ALL) NOPASSWD: /绝对路径/到你的可执行文件 - 保存退出(visudo会自动校验语法,避免配置出错)
- 执行
- 在VS2019的项目属性中:
- 切换到「调试」选项卡
- 将「命令」字段修改为
sudo ./$(TargetFileName) - 保存设置后按F5启动调试,程序就会以root身份运行
方案2:手动启动root权限的gdbserver,VS远程连接
- 在远程Ubuntu机器上,cd到程序所在目录,执行:
sudo gdbserver :1234 ./你的可执行文件名
(1234是自定义端口,只要未被占用即可) - 在VS2019的项目属性中:
- 切换到「调试」选项卡
- 将「调试器类型」改为「远程GDB服务器」
- 在「远程GDB服务器」字段填入
Ubuntu虚拟机IP:1234 - 保存设置后按F5,VS会直接连接到已启动的root权限gdbserver进行调试
方案3:切换到root用户远程调试(不推荐)
如果测试环境对安全性要求不高,可以直接在VS的远程连接设置里,把连接用户改成root。但这种方式会让所有VS操作都以root身份执行,存在安全风险,仅适合临时测试场景。
内容的提问来源于stack exchange,提问作者OneAndOnly
相关产品推荐
相关产品推荐

