我希望能以特权用户身份启动Tomcat(Web服务器),然后在它启动后将其降为非特权用户。是否有一种程序化或者通用的Linux方法可以实现这一点?
谢谢。
谢谢。
-Djava.net.preferIPv4Stack=true
启动JRE来完成,但后者是应用程序特定的。您可以通过系统调用seteuid (http://www.opengroup.org/onlinepubs/009695399/functions/seteuid.html) 在自己的应用程序代码中完成此操作,但是通过bash脚本或其他方式完成此操作,我不确定。为什么不一开始就将进程作为普通用户启动呢?
虽然一个进程可以放弃自己的权限,但我认为你不能仅仅改变另一个正在运行的进程的用户。
您可以创建一个单独的程序,该程序以root权限启动(例如通过设置二进制setuid),执行需要特权的工作,使用setuid降低权限,最后执行tomcat。
根据您要解决的问题,这可能是或不是一个解决方案。例如,如果您需要以更高的优先级运行服务器,则此方法可行。