Ubuntu上使用system()函数运行不需要输入密码
使用system()运行一些终端命令的时候,需要sudo权限,也就是必须输入密码,那么在程序自启动的时候就无法成功启动。如果设置Ubuntu下所有操作都不需要密码,安全性太低,所以我们可以将需要用到的终端指令给予无需输入密码的权限。
例如使用到了
ip link set can0 type can bitrate 1000000 sample-point 0.875 # 设置波特率为1000kbps
ifconfig can0 up # 启动CAN接口
可以使用下述方法给予权限,无需输入密码
sudo visudo
在文件末尾添加以下行
your_username ALL=(ALL) NOPASSWD: /sbin/ip, /sbin/ifconfig