如何以 root 身份启动 Java 程序但降级为非 root 用户
How to start Java program as root but downgrade to non-root user
我正在编写一个 Java 程序,它将在 Linux 服务器上 运行。程序需要以"root"启动,做某项操作(读取文件),然后降级为非root用户,文件读取关闭后
我通读了以下问题,但还没有找到可行的解决方案 - 特别是因为我不处理 http 端口。
https://serverfault.com/questions/112795/how-can-i-run-a-server-on-linux-on-port-80-as-a-normal-user
Running a part of a Java Program as Root
关于如何实现我想要做的事情有什么想法吗?
已解决: 正如答案中所建议的那样,JNA 为我解决了问题。
不幸的是,在纯 Java 中无法做到这一点。
但是你可以使用JNI或者JNA来调用setuid
系统函数。
例如,您可以重复使用 jetty-setuid
包:JAR + Native library.
我正在编写一个 Java 程序,它将在 Linux 服务器上 运行。程序需要以"root"启动,做某项操作(读取文件),然后降级为非root用户,文件读取关闭后
我通读了以下问题,但还没有找到可行的解决方案 - 特别是因为我不处理 http 端口。
https://serverfault.com/questions/112795/how-can-i-run-a-server-on-linux-on-port-80-as-a-normal-user
Running a part of a Java Program as Root
关于如何实现我想要做的事情有什么想法吗?
已解决: 正如答案中所建议的那样,JNA 为我解决了问题。
不幸的是,在纯 Java 中无法做到这一点。
但是你可以使用JNI或者JNA来调用setuid
系统函数。
例如,您可以重复使用 jetty-setuid
包:JAR + Native library.