我正在开发一个简单的 Linux 网络守护程序,它以root
、chroot()
数据文件目录和删除root
权限的形式运行。我喜欢“约定优于配置”的方法,即使我的软件有一个配置来设置它将使用哪个用户和组,我也想使用一个合理的默认值。
我应该使用哪个默认值?用户nobody
和组nogroup
? 用户daemon
和组daemon
? 其他?
我正在开发一个简单的 Linux 网络守护程序,它以root
、chroot()
数据文件目录和删除root
权限的形式运行。我喜欢“约定优于配置”的方法,即使我的软件有一个配置来设置它将使用哪个用户和组,我也想使用一个合理的默认值。
我应该使用哪个默认值?用户nobody
和组nogroup
? 用户daemon
和组daemon
? 其他?
我建议您创建一个以您的服务命名的新用户。
通过这种方式,您可以对其权限进行严格控制,并对您的服务管理的文件进行更严格的控制。
像这样的东西(比如你的守护进程叫做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)
高温高压