通过.desktop pkexec 启动程序
- 关键字
- 方案一
- 方案二
- 第一步 修改.desktop
- 第二步 xxx.sh实现
- 注意
关键字
pkexec
.desktop
qt
原始需求:
用户在麒麟系统上通过快捷方式(.desktop)启动程序后绑定系统的26端口,但是因为系统权限问题,26端口普通用户无法绑定成功,故需要root权限。
测试系统
方案一
直接写一个脚本 xx.sh
通过sudo 启动程序,简单明了,但用户不接受,还是希望通过桌面图标进行启动
#!/bin/bash
sudo /opt/xxx/AppRun
方案二
第一步 修改.desktop
[Desktop Entry]
Type=Application
Comment=xxx
Connent[zh_CN]=xgs
Name=xgs
Name[zh_CN]=xxx
Exec=/opt/xxx/xxx.sh
GenericName=xxx
genericName[zh_CN]=xxx
MimeType=application/tools
Icon=xxx
Comment=xxx
Terminal=false
Categories=Development;
X-AppImage-Version=f25f840
快捷方式关联脚本,而不是直接启动程序
第二步 xxx.sh实现
通过pkexec启动
#!/bin/bash
pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY /opt/xxx/AppRun
启动效果
至此,程序通过root权限启动
注意
pkexec 启动时的环境变量参数 以及程序路径