如何以根用户身份启动Java程序,但降级为非根用户



我正在写一个Java程序,它将在Linux服务器上运行。程序需要以"root"身份启动,执行特定操作(读取文件),然后在文件被读取并关闭后,将自己降级为非root用户。

我通读了下面的问题,但我还没有找到一个可行的解决方案-特别是因为我不处理http端口。

https://askubuntu.com/questions/62713/how -降低-用户权限- - - java应用程序后,打开-港- 80 - 443

https://serverfault.com/questions/112795/how可以-我-运行- -服务器- - linux - -港- 80——————正常用户

以Root用户运行Java程序的一部分

关于如何实现我想做的事情有什么想法吗?

SOLVED: 正如答案中所建议的,JNA为我解决了这个问题。

不幸的是,在纯Java中无法做到这一点。
但是您可以使用JNI或JNA来调用setuid系统函数。
例如,您可以重用jetty-setuid包:JAR +本机库。

最新更新