有什么可用的方法可以让我通过JNA调用一个需要root权限的动态库吗



如标题所述,动态库中的函数需要root权限才能执行一些系统调用。如果我使用JNA,我不知道如何实现这个要求。还是这是一个糟糕的要求?也许我没有提供更详细的代码,但我相信这对我来说是一个有价值的问题…

有什么可用的方法可以让我通过JNA调用需要root权限的动态库吗

没有。在UNIX/Linux中,当使用exec执行新进程并且可执行文件具有";设置uid";在其文件权限中设置的位。

这给Java带来了特殊的问题。使CCD_ 2可执行为"可执行"是完全不安全的;设置uid根";程序标准的java可执行文件设计为运行通过命令参数提供的任何Java类。您不能将其限制为仅运行某些已知可以作为root安全运行的类。

简而言之,如果您的Java应用程序需要root访问权限(在Java代码或本机代码库中(,那么它需要由root用户启动。

或者这是一个糟糕的需求?

这是一个无法实现的需求。

关于JNA的任何内容都不会赋予您的Java应用程序它所没有的权限。如果您需要提升权限来执行库函数,则需要将这些权限授予Java程序,通常是以特权用户身份运行该程序。

最新更新