我的 Ubuntu 系统上有一位用户需要 sudo 访问权限,但我不太信任他。有没有办法记录他的所有 sudo 活动,并在一天结束时通过电子邮件发送给我?
答案1
这不是一个好主意。这个计划有几个缺点。
如果您不信任他,就不要给他访问权限。如果他晚上已经发了电子邮件,那么在一天结束时向您发送他的邪恶信息也无济于事。如果他真的想破坏系统,他肯定会找到一种方法来操纵这些讨厌的电子邮件。这是一个相当简单的计算,如果您不信任的用户在系统上拥有管理权限,您就不能信任系统观察。
如果他确实需要访问权限,我们可以绕过超级用户权限吗?如果他确实需要 sudo,是否可以将其限制为仅使用一些命令。
答案2
简单的方法是设置日志监视在您的机器上。默认情况下,logwatch 每晚都会生成一封电子邮件,其中包含各种系统详细信息和重要的日志消息。默认情况下,它还包括所有已记录的 sudo 命令。
然后只需将 logwatch 电子邮件地址设置/etc/logwatch.conf
为您的地址,您将每晚收到这些邮件。
我强烈建议您与相关用户交谈,并坦诚地与他分享您的担忧。如果他对任何事情感到困惑,他可以向您询问,这比您在日志中查找错误要好得多。信任,但要核实。
答案3
这是“最小特权原则”这一概念的经典示例。也就是说,用户应拥有履行其工作职责所需的最少访问权限。真正解决您的问题的方法是实施标准操作程序,将服务器的完全管理权限限制为仅对以下人员开放:实际上管理服务器。虽然建议起来很容易,但实施起来需要您付出大量工作,而且通常需要改变 DBA、应用程序管理员等的业务流程。
您需要做的是与用户坐下来,确定用户使用该系统的具体操作,并规划出需要哪些访问权限。这里真正棘手的事情是确定他们需要做什么,而不是他们如何做。您应该首先问一些问题,例如他们是否需要编辑系统文件、重新启动服务、查看日志文件等。
一旦你将这些信息编入目录,你就可以开始弄清楚是否应该做点什么。例如,如果需要更改 /etc/sysconfig 中的文件,用户是否应该准备更改,然后将其交给系统管理员进行部署?或者,如果他们需要能够管理服务,那么实际上需要哪些命令来执行此操作,是否必须以 root 或服务帐户的身份执行此操作?
在练习结束时,您应该得到一份他们需要执行的命令列表(以及以谁的身份执行)、他们需要访问的文件以及您和用户可以遵循的进行异常更改的程序。