4

我需要以编程方式编辑、写入或删除受保护的文件。在 Windows 中,如果我手动操作,它会请求许可,而在 Unix 系统中我需要“sudo”。

在执行期间如何在 Java 中要求更高的权限?

4

2 回答 2

2

如果您的程序需要高级访问权限,最好告知用户他们需要以 root / 特权帐户运行它才能工作。否则,最好的选择是启动一个使用“sudo”初始化的新“代理进程”,然后执行您想要的程序,例如“sudo cp File1 File2”,它将为您执行您的脏活。不幸的是,这不是跨平台的,需要用户密码。根本不可能在执行期间将 JVM 撞到更高的用户,因为这会带来巨大的安全风险。

md_5

于 2012-08-09T02:57:49.823 回答
0

因为 Java 使用虚拟机工作,所以您不能仅以提升模式启动(例如)另一个线程。相反,您需要启动一个全新的虚拟机,您将无法连接到该虚拟机。

我会研究执行可以以提升的权限运行的单独 Java 进程的方法。您仍然可以使用相同的代码,但将其作为主要方法。

你不能仅仅提高你的特权。

我可能完全错了,很高兴被别人展示出来。

于 2012-08-09T03:02:31.723 回答