【发布时间】:2012-04-18 03:29:13
【问题描述】:
我试过了:
final ProcessBuilder pb = new ProcessBuilder("umount", "foldername");
final Process p = pb.start();
投掷
umount: /home/user/foldername 不在 fstab 中(而你不在 根)
我试过了
final ProcessBuilder pb = new ProcessBuilder("sudo","umount", "foldername");
final Process p = pb.start();
投掷
sudo:对不起,你必须有一个 tty 才能运行 sudo
我获得了 root 密码,但无法将其提供给 ProcessBuilder。我也无法编辑fstab(或任何需要编辑的内容),因为它是从保存的操作系统映像在远程服务器上启动的远程虚拟机。
我只想以 root 身份运行命令。
【问题讨论】:
-
直接从终端运行这些命令是否有效?
-
如果我不是 root,第一个命令打印的内容完全相同(如果我是 root,它会成功卸载文件夹)。第二个命令提示输入密码。
-
您可以允许运行您的 java 程序的用户在不输入密码的情况下卸载。查看文件 /etc/sudoers(可使用命令“visudo”编辑)以获取一些示例。