首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在非根用户帐户下运行守护进程是一个好做法吗?

在非根用户帐户下运行守护进程是一个好做法吗?
EN

Unix & Linux用户
提问于 2015-06-01 08:17:44
回答 3查看 12.2K关注 0票数 15

我开发了一个应用程序,它使用NTP来改变网络时间,同步我的两台计算机。它以root的形式运行,因为只允许后者在Linux上更改时间和日期(我猜)。

现在,我想以用户的身份运行它。但是,我需要访问时间。

  • 在非根用户帐户下运行守护进程是一个好做法吗?
  • 我是否应该为我的应用程序提供像CAP_SYS_TIME这样的功能?
  • 它不是引入了安全漏洞吗?
  • 有更好的办法吗?
EN

回答 3

Unix & Linux用户

回答已采纳

发布于 2015-06-01 10:11:50

在非根用户帐户下运行守护进程是一个好做法吗?

是的,这很常见。例如,Apache从root开始,然后将新进程分叉为www-data (默认情况下)。

如前所述,如果您的程序被黑客攻击(例如:代码注入),攻击者将不会获得根用户访问权,但将仅限于您授予该特定用户的权限。

我应该给一个“能力”,如"CAP_SYS_TIME“吗?

这是一个好主意,因为您避免使用setuid,并将权限限制在这个非常特定的功能上。

我是否应该以另一种方式这样做,这将被视为“良好做法”?

例如,您可以增加安全性:

  • 以非特权用户的身份运行服务,不带shell。
  • 使用chroot将用户锁定在其主目录中。
票数 16
EN

Unix & Linux用户

发布于 2015-06-01 09:23:19

  • 我是否应该以另一种方式这样做,这将被视为“良好做法”?

除非您有强有力的、无可辩驳的理由,否则,您应该只使用随GNU/Linux发行版附带的NTP包。标准的NTP守护进程需要数年的时间才能成熟,并具有复杂的功能,例如减慢或加速系统时钟,使其与网络或GPS时钟同步。它是为同步时钟而量身定做的,因此它很可能是达到这个目的的最佳工具。

ntpd仍在维护,从最近的更新来看 (撰写本文之时)。如果你需要更多的功能,我建议你直接联系开发人员,相信他们会说些什么。

票数 13
EN

Unix & Linux用户

发布于 2015-06-01 09:56:38

如果您有一个程序需要能够执行函数X(例如,操纵时钟),并且您可以赋予它执行函数X的特权/权力,而没有其他任何东西,这比给它一整罐字母表汤更好。这就是所谓的“最小特权原则. 考虑”,如果您的程序有错误--要么是普通的编程错误,要么是可利用的安全漏洞。如果它以“根”的形式运行,它可以删除每个人的文件,或者发送给攻击者,如果程序唯一能做的事情就是操纵时钟(以及非特权函数,比如在一个锁定的目录中操作文件),那么如果程序变成流氓,那将是最糟糕的。

票数 5
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/206779

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档