我的目标是管理多个应用程序的启动,其中一个应用程序由具有提升权限的用户执行。
计划是将启动管理器(使用的 Node.js 脚本require('child_process').exec
)cd
放置到应用程序用户的主目录,su <app user>
然后将启动作为 执行<app user>
。
我最关心的是安全。例如,可以<app user>
exit
返回启动管理器用户吗?
使用这种方法还有其他值得考虑或谨慎对待的问题吗?
答案1
一旦以 启动<app user>
,您正在运行的应用程序将仅具有该用户拥有的权限。
至于是否能够exit
,一旦您的应用程序终止,就不会再发布任何内容exit
。
我不知道你的脚本是做什么的,但一般来说,应用程序的启动最好由 systemd 之类的东西来管理。您可以创建一个服务文件,它可以执行您解释的脚本将执行的所有操作。
您可以指定服务运行的用户、要启动的应用程序、启动它的目录等。
以下是一些开始使用 systemd 服务文件的好示例:https://www.shellhacks.com/systemd-service-file-example/