2011-08-18 98 views
1

如何从类中调用身份验证窗口,为当前应用程序授予root权限一段时间。例如,我正在编写一些应用程序来处理分区,因此它需要root权限才能执行某些操作。Java:在Ubuntu上询问root权限

+1

你可能想看看Java-Gnome:http://java-gnome.sourceforge.net –

+2

我建议你以sudo访问权限运行它。这不完全是Java的一杯茶 - 它的理念是“一次写入,随处运行” - 几乎任何你需要root访问的东西都不会跨平台。 – corsiKa

回答

4

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

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

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