【发布时间】:2014-03-12 01:45:04
【问题描述】:
我的应用程序有多个用户和 1 个超级用户。我正在尝试通过 Java 代码在 Linux 中编写和存储文件,但出现权限被拒绝错误。我使用了以下代码:
Process process = Runtime.getRuntime().exec("/usr/bin/tiff2pdf -o /tmp/tiff_dir/temp.pdf /tmp/tiff_dir/image.tiff");
int returnCode = process.waitFor();
我收到以下错误:
java.io.FileNotFoundException: image.tiff (Permission denied)
从我的分析来看,似乎是因为用户没有root权限,所以我收到了这个错误。有什么办法解决这个问题?
【问题讨论】:
-
在命令行中使用 sudo。但您需要输入密码。小心root...
-
找出您没有所需权限而不是运行超级用户命令的原因。这似乎不是一个需要 root 访问权限的命令。
-
您是否尝试过使用文件的完整路径?可能问题在于 cwd 不是您认为的那样。特权提升永远不是答案。
-
@PhilippSander 但我不希望用户输入 root 密码。
-
如果允许随机程序在没有任何密码提示等的情况下获得超级用户权限,您不认为这将是一个巨大的安全漏洞吗?
标签: java linux exec elevated-privileges