gpt4 book ai didi

带有 sudo 的 Java 包装器脚本不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 11:34:02 25 4
gpt4 key购买 nike

我有一个 Java 可执行文件,它接受命令行参数以在我的 Linux 机器上启动受根保护的应用程序。我们有单独的用户帐户,这些帐户被授予 sudo 访问权限以启动单个 Java 可执行文件,然后用户可以使用它来启动受 root 保护的应用程序。我对 sudo 的理解是,用户在单次调用和此后的任何后续调用(即 Java exec 对应用程序进行的调用)期间承担根“角色”。它适用于我的大部分应用程序,但仅部分适用于其他应用程序。特别是有时启动的外部应用程序无法正常运行,并且似乎输出无法打开文件(所有人都可以读取)的错误。如果我以 root 身份运行可执行文件,可执行文件和后续应用程序都运行良好,所以我知道它与 sudo 有关系。

如有必要,我可以提供更多详细信息,但看看是否有人知道 sudo 是否会更改我不知道的环境或运行时问题。

更新:

配置文件位于可读目录中。为了确保测试,我让 Java exec 尝试启动的二进制文件可供所有人读取。然后从我的测试员帐户启动 Java exec(不带 sudo),应用程序运行良好。然后我只保护二进制文件的根目录,并使用 sudo 运行 Java exec,应用程序启动失败并给我一个错误,如:

“记录器:无法打开 edtrecorder.cfg”

该文件及其所在的目录都是所有人都可以读取的。

最佳答案

在某些发行版(例如 ubuntu)上,sudo 使用受限环境(具有不同的搜索路径)运行程序到运行命令的用户 shell。这是一项安全功能;例如,程序可能已经更改了 PATH,以便在用户键入命令时运行流氓程序而不是真正的程序 - 这在 sudo 下将是灾难性的。参见 sudo changes PATH - why?

关于带有 sudo 的 Java 包装器脚本不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9318106/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com