我正在开发一个应用程序,需要读取下面的一些配置文件/etc
并写入下面的数据库文件/var/lib
我正在处理一个.service
文件,以便使该应用程序能够作为 systemd 服务执行。
该应用程序执行许多与网络相关的任务,其对等点有时可能是未知的。
我将文件的 User 参数设置.service
为普通用户(不是 root),因为我想谨慎对待与网络和未知对等点相关的安全影响。但这会阻止应用程序写入数据库,因为它没有/var/lib
.
此设置的安全方法是什么?
答案1
我的解决方案类似于评论中@filbranden的建议(谢谢!)。
管理员用户属于特定组。我将组所有权设置/var/lib/db
为该组(用户所有权仍然是root
),并将该目录的权限设置为775
(drwxrwxr-x
,组有w
权限)。
现在,由于 systemd 服务是由管理员用户执行的,因此写入/var/lib/db
不会出现错误。