我有一个网络应用程序,以用户www身份运行。但是在某一点上,它需要代表用户Alice和Bob从Linux文件系统中读取文件。
一种方法是启动一个shell(Runtime.exec()),并调用一个C setuid可执行文件来更改用户ID并读取文件。
是否有一种使用JNI的方法(Web应用程序需要作为www而不是root运行)?我尝试编写一个Java JNI程序,在Linux上调用本地方法(我将这些本地方法归属于root并设置了setuid位)。但是,除非我以root身份运行Java程序,否则它不允许我切换用户ID。我错过了什么吗?是否有一种方法可以实现这个?
谢谢!
一种方法是启动一个shell(Runtime.exec()),并调用一个C setuid可执行文件来更改用户ID并读取文件。
是否有一种使用JNI的方法(Web应用程序需要作为www而不是root运行)?我尝试编写一个Java JNI程序,在Linux上调用本地方法(我将这些本地方法归属于root并设置了setuid位)。但是,除非我以root身份运行Java程序,否则它不允许我切换用户ID。我错过了什么吗?是否有一种方法可以实现这个?
谢谢!