Java:在Ubuntu上请求root权限

如何调用身份validation窗口,从类中为当前应用程序授予root权限一段时间。 例如,我正在编写一些应用程序来处理分区,所以它需要root权限来执行一些操作。

可能你不能用Java来做到这一点。 最好的办法是,也许你可以检测到程序不是作为sudo运行,所以你可以要求用户关闭程序,并重新启动为超级用户。 (对于这个解决方案,我更喜欢从系统文件中选择一个文件或目录,并检查它是否可写。例如new File("/usr/bin/ls").isWritable()

其他方式可能启动桌面环境特定的认证窗口。 例如有Java-gnome,但正如你所期望的那样,并不是所有的用户都应该使用GNOME。 所以没有一个真正的通用解决方案,并且都有大量的依赖关系。 Java不是为此设计的。

最好的事情是检查超级用户权限与启动技巧。 也许你可以详细说明你的问题,我们可以想出一个不需要root权限的解决方案。