我有一个守护进程,我想使用标准框架在启动时启动它(例如,使用启动的service
文件)。我之前已经为服务框架编写了脚本,因此我不需要这方面的基础知识。/etc/init.d/rc.d
/sbin/service
但是,我从未尝试运行不应以 root 身份启动的进程。进程本身不支持在启动时 chrooting,我不想以 root 身份运行它。除了在启动脚本中使用su
或之外sudo
,是否有任何首选或推荐的方式来表示“以用户 X 身份在启动时运行此脚本”?
答案1
我相信你的问题与这个问题类似:
https://stackoverflow.com/questions/394984/best-practice-to-run-linux-service-as-a-different-user
我建议检查一下上述几个选项
答案2
也许 setuid 就是你要找的?如果守护进程以 root 身份运行,你可以创建一个具有有限权限的新帐户(仅具有足够的权限来运行守护进程),并在守护进程中将 setuid 设置为该帐户