在Linux上哪个系统用户我的简单守护进程应该默认运行以获得最佳兼容性?

时间:2011-08-16 22:56:43

标签: linux daemon convention

我正在开发一个简单的Linux网络守护程序,它以rootchroot()的形式运行到数据文件目录并删除root权限。我喜欢“约定优于配置”的方法,即使我的软件有一个配置来设置它将使用哪个用户和组,我想使用合理的默认值。

我应该使用哪种默认值?用户nobody和群组nogroup?用户daemon和群组daemon?另一?

1 个答案:

答案 0 :(得分:0)

我建议您创建一个新用户,该用户已根据您的服务命名。

通过这种方式,您可以对其权限进行严格控制,并对服务管理的文件进行更严格的控制。

这样的东西(比如你的daemone叫做antoniod):

useradd -s /sbin/nologin antoniod

然后你可以恰当地chown / chmod你的文件(假设你的二进制文件在/ opt / antoniod中,数据在/ var / antoniod-data中):

  chown -R antoniod:antoniod /opt/antoniod/
  chown -R antoniod:antoniod /var/antoniod-data/
  chmod -R 0550 /opt/antoniod/
  chmod -R 0770 /var/antoniod-data/

如果您需要有关启动脚本本身的建议,请查看特定于发行版的支持,例如: daemon函数(RedHat)或stop-start-daemon(Debian)

HTH