使用 cronjob 进行用户管理

使用 cronjob 进行用户管理

在我的组织中,我们想在一片混乱之后实施用户管理标准。我们(组织)和客户能够访问 root 用户,他们所做的更改导致服务器瘫痪。然而,我们却因篡改配置文件而受到指责。

为了解决未来的任何问题,我们设计了一个模型,无论它是否是最佳实践,获得输入都会有所帮助。

步骤 1 - 具有 sudo 访问权限的 root 用户和非 root 用户

我们希望以以下方式吸引用户 -

  • 根用户 -> 出于安全目的,禁止通过 SSH 登录,或仅通过 SSH 密钥和释义进行访问。只有我的团队中的一名成员可以访问根帐户。
  • 两个非root用户->一个用于我的团队,另一个用于客户。

第 2 步 - 对服务具有有限访问权限的非 root 用户

这些将是只能访问一项服务的个人用户。

  • 完全访问服务器 - Apache 或 Nginx
  • 完全访问 MySQL

我们可以让更多用户使用不同的服务。除分配的服务外,其他用户无法访问其他服务。

步骤 3 - 在日志文件中审核每个用户的命令

  • 我们想要运行一个 cronjob,记录任何用户在服务器上执行的每个命令。
  • 我们需要它来识别谁在何时做出了更改。

对于审计,我寻找了一些解决方案,其中大多数涉及启动命令,例如脚本,在开始工作之前。我希望某些东西始终运行,无需任何手动干预。即使服务器重新启动。

请让我知道我们是否可以这样做或者是否有更好的方法来管理它们。

答案1

虽然这个想法听起来不错,但你提出它的方式表明,你需要的知识太少,无法在生产层面实现你的想法。你要求的是一门关于基本用户/组事实和附加机制(如 SELinux)的 Linux 速成课程。在我看来,你应该找个人来做这项工作。

更新:

1.)组织责任

这种情况的发生是因为职责不明确。谁真的需要 root 帐户?管理员和仅有的管理员。其余的是服务。因此,永远不要经常与其他人共享 root/sudo 帐户(支持人员除外)。

2.) 如果管理员允许,非 root/sudo 用户可以启动和停止某些服务:

2a.) 你可以使用以下命令使某些文件对非 root/sudo 用户可执行setUIDsetGUID

2b.) 您可以在用户空间中运行用户服务。手动安装 Nginx 和 Mysql 即可/home/client完成!

3.) 说到审计,我猜这history在开始时就足够了。用户没有特权,并且处于您的信任链中。

答案2

正如评论所说,selinux 和 auditd,还有 psacct 来查看用户运行的进程,甚至可能还有 puppet 或其他东西来强制配置。如果进行了未经授权的更改,那么 puppet 会将配置更改回官方的良好状态。

相关内容