当前位置: 代码迷 >> QT开发 >> 请问:Qt4.8怎么调用外部需要root权限的程序,大牛速来!
  详细解决方案

请问:Qt4.8怎么调用外部需要root权限的程序,大牛速来!

热度:66   发布时间:2016-04-25 04:55:05.0
请教:Qt4.8如何调用外部需要root权限的程序,大牛速来!!
1.root编译的驱动程序 A,imsmod 加载进去。

2.通过测试工具B,root测试,一切正常,用户测试不能读取内容。

3.现在有QWidget 界面程序C,

通过B的参数来获取系统信息,初始化界面程序C。也就是说在启动C时,就执行来B。

如何在C执行时,获取到系统信息哪??也就是第二步内容(root获取信息)。

简单来说:如何才能让通过qtcreator编译的程序具有root权限呢???

让程序以 root权限执行!!!

------解决方案--------------------
这个问题已经在另一个帖子里给你回答了,让你的程序使用gksu启动,试一下吧
------解决方案--------------------
我不知道LZ的嵌入式设备上运行的是何种Linux。不过有个setuid的函数的功能或许你可以参考一下。
------解决方案--------------------
简单来说:如何才能让通过qtcreator编译的程序具有root权限呢???
让程序以 root权限执行!!!

你误解了权限的概念。
“具有root权限” 是指用户,当前用户是否具有root权限,还是只有user权限,而并非是说一个可执行应用程序。 你 ll hello 察看应用程序,比如得到:-rwxrwxr-x 可以看到不同用户对文件的读写执行 权限限定。

你若想不让user用户执行你的程序,即可用chmod命令。
你若想提升当前用户的操作权限,就是从user到root,那么切换用户或者sudo。
至于前面有人提到setuid(0)来提升当前权限这个办法,也必须是root用户下,执行这个命令才有效的。

如果你是做嵌入式linux应用程序,就是说将来要移植给板子的,除非大型项目,一般都是一个root单用户,你也就不用考虑这些,看你具体情况。

还是那句话,在UBuntu的本地测试,你要理清概念,“具有root权限”是指用户,而不是程序。
  相关解决方案