java - 尝试每个标准 lib 选项后从 java 执行 sudo 命令

标签 java shell execute sudo

<分区>

我需要从 Java 运行 sudo,我尝试了以下选项:

  • Runtime.exec(“echo password | sudo -S”的每一种形式)。每种形式的命令都可以直接从终端成功执行,但尽管正确指定了程序路径,但不能从 java 执行
  • ThreadExecutor 中的 ProcessBuilder,见 here

编辑 sudoers 和以 root 身份运行 Java 进程的选项对我的情况不可行。 是this真的是我唯一的选择,因为我真的想避免使用任何非标准库?

编辑:除了要求用户专门下载 SUDO GUI(kdesudo、gksu、cocoasudo 等)然后提供 java 路径之外,似乎没有其他办法解决这个问题。

最佳答案

在您的 Java 应用程序中存储您的 root 密码是一个非常可怕的坏主意。我建议您以不同的方式解决这个问题,例如使用不同的 sudo 配置(因此它不需要来自任何帐户的密码)、SUID 二进制包装器或类似的东西。

关于java - 尝试每个标准 lib 选项后从 java 执行 sudo 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13387460/

相关文章:

java - ObjectMapper 正在尝试将字符串解析为 json 而不是 xml

java - Jackson - 忽略具有特定名称的属性

java - 为什么 Java 在检查之后不假定类型?

java - 使用 Mockito 测试 LoginController

linux - 从多个子目录中删除文件,但在每个子目录中保留 3 个最新文件

linux - 使用环境变量(从 awk 命令获取其值)作为 while 中的条件

python - 使用 cmd.exe 时找不到脚本文件

java - linux运行其他jar

command - Windows 终端 : open multiple panes and execute specified command

postgresql - Postgres如何评估从查询到函数中变量的表达式