当我创建一个应在用户系统(或嵌入式系统)上运行守护进程的包时,在安装时为该包创建用户和/或组是否是良好的安全做法?我知道 ssh、telnet、ftp、apache 等在 Linux 上执行此操作。
我想知道,默认遵循这种做法有什么缺点?
答案1
在安装时为该包创建用户和/或组是否是好的安全做法?
是的,而且不只是为了安全。许多守护进程具有广泛的功能,包括拥有自己的用户以用于管理目的 - 例如 postgres。
我想知道,默认遵循这种做法有什么缺点?
如果您正确且安全地执行此操作,除了系统中多了一个用户和组(这其实并不重要)之外,这样做没有任何实际弊端。但是,如果该用户用于守护进程的管理访问,那么如果有人未经授权访问该用户,就会出现问题 - 但是,其他任何事情都是这种情况,尤其是 root 帐户,因此与此没有什么不同。
我的包裹默认应该有自己的用户吗?
正如我所说,这完全取决于守护进程。如果您认为该用户有用途 - 用于管理访问、管理或其他用途 - 那么可以。否则,如果您找不到此类用户的任何用途 - 就不要创建它,它没有必要。
如何正确执行此操作取决于您使用的 Linux 发行版。如果您使用基于 Debian 的发行版(带有 Debian apt 包管理器),我可以为您提供以下内容:
如果使用 --system 选项调用,adduser 程序会执行正确的操作。因此通常只需要调用
添加用户——系统$用户名
在您的 postinst 中创建禁用登录、主组为 nogroup 且主目录位于 /home 下的帐户。如果您需要其他选项,请根据需要添加它们。
引文来自AccountHandlingInMaintainerScripts @ Debian 维基。您可以进一步阅读以获取更深入的信息。