【Linux开发笔记】vscode远程开发时免密使用sudo权限启动gdb调试

1 前言

我们在Linux程序的开发过程中经常会使用vscode的远程开发功能,也就是在本地使用vscode连接远端的一台Linux主机并进行代码编程。

但是在使用vscode进行远程gdb调试的时候,有些功能模块的正常运行或者程序内部调用shell的操作需要使用sudo权限。

sudo

2 配置gdb脚本

2.1 新建gdb脚本

在远端Linux主机任意目录下新建一个名为gdb的文本文件,我是在当前工程vscode的工作区${workspaceFolder}目录下创建的,任何目录都可以,为了以后开发方便也可以在当前用户的home目录下创建。

2.2 在gdb脚本中编辑

通过文本编辑器打开刚才创建的文件gdb,并在文件中输入以下命令:

sudo /usr/bin/gdb "$@"

该命令中的“/usr/bin/gdb”为远端Linux主机上实际的gdb调试器路径,编辑完成后保存并关闭。

2.3 更改gdb脚本的权限

使用chmod命令将gdb脚本文件权限修改为当前用户可执行,我这里简单粗暴直接把权限改为了777。

chmod 777 gdb

3 配置launch.json

打开vscode当前工作区下.vscode中的launch.json,并添加如下配置:

"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "${workspaceFolder}/gdb", // gdb脚本的路径

4 配置sudo权限为免密

进入到/etc/sudoers.d目录下,

cd /etc/sudoers.d

在sudoers.d目录下新建一个名为“sudo_gdb_for_vscode”(文件名随意)的文本文件。

sudo touch sudo_gdb_for_vscode

使用sudo权限打开sudo_gdb_for_vscode进行编辑,在文件中写入以下配置:

%admin ALL=(ALL) NOPASSWD:ALL

保存文件并退出。

5 测试

5.1 测试sudo免密

配置完成后,新开一个终端,这个时候使用sudo权限执行任意命令,如果没有再提示输入管理员密码,则表示配置sudo权限免密成功了。

5.2 测试vscode远程调试

再回到本地vscode中进行远程调试,这个时候可以发现程序中需要使用sudo权限的功能模块或者程序内部使用sudo权限的shell操作都能够正常在远端Linux主机中使用sudo权限运行了。

vscode


本文原创发布于公众号Linux未来工程师

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值