【发布时间】:2023-03-30 00:11:01
【问题描述】:
我有一个 Qt 4 GUI,我需要在下拉菜单中有一个选项,允许用户选择重新启动计算机。我意识到这似乎与以其他方式重新启动计算机的能力无关,但选择需要留在那里。我尝试使用 system() 调用以下内容:
- suid-root shell 脚本
- 一个非 suid 的 shell 脚本
- suid-root 二进制程序
所有这些都只是导致
reboot: 必须是超级用户才能打印。使用 system() 直接调用 reboot 做同样的事情。我并不特别喜欢使用 system() 来做到这一点,但这似乎是最直接的选择。
如何从 GUI 重新启动系统?
【问题讨论】:
-
printf("请立即按下重置按钮");
-
您是否尝试过以超级用户身份运行它?
-
在 Windows 中有很多方法可以做到这一点,但大多数都不是有意的
-
仅供参考,Linux 忽略脚本上的 suid 位,因为允许 suid 脚本存在严重的安全问题。请参阅此处的第 5.5.3 节:docstore.mik.ua/orelly/networking/puis/ch05_05.htm