Linux应用开发,有个需求是需要在程序中运行一个脚本执行一些需要sudo执行的操作,比如复制文件到系统目录,那么就不能让用户输入密码,而是把密码固定放在脚本文件中让sudo操作使用。
经过大半天的研究和查询,找到了方法:
格式:
echo "密码" | sudo -S 要执行的操作
脚本文件:
copy-file.sh
echo "123abc" | sudo -S cp /home/zhouyingge1104/Desktop/temp/Atest.txt /usr/lib/modules/5.15.0-48-generic/kernel/Atest.txt
echo "123abc" | sudo -S cp /home/zhouyingge1104/Desktop/temp/NAV_1.xlsx /usr/lib/modules/5.15.0-48-generic/kernel/NAV_1.xlsx
echo "123abc" | sudo -S cp /home/zhouyingge1104/Desktop/temp/串口赋权步骤.docx /usr/lib/modules/5.15.0-48-generic/kernel/串口赋权步骤.docx
Qt调用:
QProcess p;
p.start("bash /home/zhouyingge1104/Desktop/temp/copy-file.sh");
p.waitForFinished();
实测成功。