Systemd: Special user nobody configured 原因与解决方法

Systemd 为了避免直接以 root 权限运行守护程序,通常会使用 User=nobody 执行。
但是这并不是完全的安全,所以在较新的版本中加入了 DynamicUser,在使用动态用户执行程序的时候,通常还包含了 ProtectSystem=strictProtectHome=read-only 两个内容。这样既可以保护系统也可以避免文件被修改。

解决办法

当服务日志出现 Special user nobody configured 时,只要将 User=nobody 修改为 DynamicUser=yes

1
2
3

User=nobody 修改为--> DynamicUser=yes

然后重新加载systemd服务,重启对应的服务即可

1
2
3
4
5

systemctl daemon-reload

systemctl restart xxxx