我有一個作爲用戶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。有什麼我失蹤了嗎?有沒有辦法做到這一點?
謝謝!