我有一个作为用户www运行的web应用程序。然而,有一点需要代表用户Alice和Bob从Linux文件系统读取文件。JNI + setuid问题
这样做的一种方法是启动一个shell(Runtime.exec())并调用一个C setuid可执行文件来更改userid并读取该文件。
有没有办法用JNI来实现这个(Web应用程序需要以www而不是root身份运行)?我试图编写一个调用Linux上的本地方法的Java JNI程序(我使这些本地方法由root拥有,并设置了setuid位)。但是除非我以root身份运行Java程序,否则不会让我切换用户ID。有什么我失踪了吗?有没有办法做到这一点?
谢谢!