抱歉,我没有明确提到我正在使用Windows,所以解决方案与linux有关 有没有办法通过另一个使用java的用户执行进程(通过在代码中提供用户名和密码)?
目前我正在使用进程p = Runtime.getRuntime().exec("cmd")
,但我需要以不同的用户身份运行它。有没有支持这个的功能?或者java中的任何其他方法?
编辑:对不起,之前我没有提到我在Windows上工作。所以与linux os相关的解决方案不适用。
答案 0 :(得分:1)
您需要调用一个命令来处理"以其他用户身份运行"功能。例如" su"或" sudo"在Linux 1 上。此功能不是JVM的可用性,因为:
还有一个问题是,如果编写(或使用)处理用户的程序存在风险。代表他们的密码。特别是对于那些不了解并遵循"最佳实践的用户而言。管理他们的密码。
1 - ...虽然" sudo"有一个不同的访问控制模型。
2 - 首先,此功能需要root权限,并且以root权限运行的JVM是一个主要的安全风险。