我正在开发一个简单的Linux网络守护程序,它以root
,chroot()
的形式运行到数据文件目录并删除root
权限。我喜欢“约定优于配置”的方法,即使我的软件有一个配置来设置它将使用哪个用户和组,我想使用合理的默认值。
我应该使用哪种默认值?用户nobody
和群组nogroup
?用户daemon
和群组daemon
?另一?
答案 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