【发布时间】:2019-01-26 22:25:44
【问题描述】:
我正在尝试使用 java 打包工具打包一个 java 应用程序(我是这个工具的新手) 应用程序本身必须在内部进行一些调用(使用 java 进程 api)
如果 java 应用程序以管理员权限启动,这将正常工作。例如,如果我以 sudo java -jar application.jar 的身份运行我的 jar 应用程序,那么所有子进程也将成为管理员。
出于分发目的,我无法控制用户将如何启动应用程序。因此尝试使用 java 打包工具 - 但我需要强制以管理员权限运行应用程序。 (例如,如果用户没有 sudo,应用程序将停止)
我强烈希望避免的另一种解决方法是在我启动内部进程时要求用户输入他们的 admin/sudo 密码..
---编辑--- 我想我需要在 cmets 和我得到的答案之后添加更多背景。看起来问题是关于是否检测管理员.. 这不是我的问题。
class MyApp...
main(...){
System.exec("start format.app")
}
format.app 需要管理员才能工作。
我使用 javapackager 工具来分发 MyApp.app (for mac) MyApp.exe (for windows) etc ...
我希望 MyApp.app 只能由管理员用户执行。这意味着如果用户尝试启动 MyApp.app 没有管理员权限,他的操作系统会提示输入凭据,否则操作系统会不允许应用启动。
我的解决方法是使用 sudo,但我需要提示用户输入密码。这对我来说是一个安全问题(提示不是本机)和 2/我这种方法较弱,可能会暴露附加到进程时的密码
【问题讨论】:
-
绝对不是上述参考文献的重复。我想要求捆绑的应用程序只能以管理员身份运行。如果用户启动了应用程序,操作系统会立即要求以管理员身份运行应用程序
-
如果问题不是关于检测管理员,而是需要管理员权限,我认为你需要从下往上重新考虑问题的措辞......
标签: java admin sudo javapackager