簡體   English   中英

如何以root身份啟動Java程序,但降級為非root用戶

[英]How to start Java program as root but downgrade to non-root user

我正在編寫一個將在Linux服務器上運行的Java程序。 程序需要以“root”身份啟動,執行某項操作(讀取文件),然后在讀取並關閉文件后將其自身降級為非root用戶。

我閱讀了以下問題,但我沒有找到可行的解決方案 - 特別是因為我沒有處理http端口。

https://askubuntu.com/questions/62713/how-to-downgrade-user-permissions-on-a-java-app-after-opening-port-80-443

https://serverfault.com/questions/112795/how-can-i-run-a-server-on-linux-on-port-80-as-a-normal-user

以Root身份運行Java程序的一部分

關於如何實現我想要做的事情的任何想法?

解決: 正如答案所示,JNA為我做了訣竅。

不幸的是,在純Java中沒有辦法做到這一點。
但是您可以使用JNI或JNA來調用setuid系統函數。
例如,您可以重復使用jetty-setuid包: JAR + Native庫

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM