防止管理员禁用 bash 历史记录

防止管理员禁用 bash 历史记录

我有一些管理员不希望他们的活动被人看到。

他们聪明地set +o history在登录后运行。这样做意味着他们运行的命令不会记录在历史文件中。

有没有办法设置.bash_history属性来不允许这样做?

答案1

总结:不。没有任何方法可以轻易解决这个问题。更一般地说,你不能授予某人对计算机系统的完全控制权,然后成功阻止他们执行具体的动作。

这个答案基于以下假设,你似乎表明这些假设是事实。请注意,虽然我在这里使用了一些听起来像法律术语的措辞,但我谈论的是技术和实践/社会问题。这篇文章是不是关于法律。

  1. 你正在谈论一个多用户生产系统,其中某些用户被故意授予以下能力:采取任何行动以 root 身份运行命令sudo和/或波尔基特(这种能力就是 Ubuntu 中“管理员”或“管理员”的意思——确实如此,在本质上,它在任何系统上意味着什么。)
  2. 您是该系统的实际和合法所有者。您没有义务(无论是合同还是其他方式)不对这些用户使用其管理权力的方式施加要求。我在这里真正想表达的是,问题不在于您,而在于他们。如果问题在于您,那就是伟大的因为这意味着你可以通过改变自己的行为来直接解决这个问题。但我认为不幸的是事实并非如此。
  3. 您认为这些用户正在利用其管理权限执行与其管理员角色不符的操作,并且背叛了您的信任。他们中的部分或全部人都采取了故意的措施,不让您知道他们如何使用这些权限。

如果这些假设成立,那么最好的情况是您尚未要求您的管理人员不要试图隐瞒其行为的情况。在这种情况下,可以想象有可能你只需向他们明确提出这个要求,他们就会遵守。如果事实证明这个可行,那么我建议你询问你的管理员为什么他们一直在隐瞒自己的行为。也许他们还使用系统执行非管理任务,这些任务涉及他们自己或他人的敏感信息,这些信息必须得到保护。如果是这样,那么要么这是对系统的不当使用,你可以告诉他们停止这样做,要么这是适当的使用,在这种情况下是可以通过技术手段解决的问题——具体来说,可以为他们提供单独的非管理员账户用于此类用途。

除此之外,仅有的防止他们继续隐瞒利用其高超的权力所采取的行动的方法就是剥夺他们的权力(作为user535733 提及)。

正如您所描述的情况,系统授予他们与您相同的技术能力。您可以采取的任何阻止bash记录历史记录的措施,他们都可以轻易撤消。他们还可能让您很难知道他们已经撤消了它。举许多例子之一,他们可以让它记录历史记录,但可以自动或手动编辑历史文件。此外,他们可以使用history内置命令在将历史记录写入文件之前编辑或删除历史记录行。

此外,即使记录了历史记录,Bash 仍然故意地旨在允许用户阻止任何单个命令被记录在历史记录中。这是通过在命令开头添加一个或多个空格来实现的,它通常适用于无法避免运行参数包含敏感数据的命令的情况,以及防止在其他情况下容易造成危害的命令(例如,某些rm -r命令)被意外地从历史记录中检索和运行。

此外,用户不必隐藏或避免写入 Bash 历史记录,以免难以或无法发现他们正在执行的操作。他们不需要使用 shell,如果他们使用 shell,则不必是 ,如果是 ,它可以是 的bash一个bash单独实例,并使用bash诸如 之类的选项运行,--norc以防止它读取配置文件。他们可以运行诸如vim或 之类的程序emacs,并使用它来做他们想做的任何事情,包括但不限于启动新 shell、诸如 之类的解释器python3或其他强大的程序,例如mc

查看用户的~/.history文件并不是审核其管理操作的好方法,因为上述所有技术都可以用来规避这一点也有相当频繁的其他用途。例如,许多用户在 shell 之外执行一些不重要的任务。如果记录了 shell 历史记录,则是为了方便用户。它不适用于任何其他目的。

您可以查看日志来查看已执行的管理操作,例如/var/log/auth.log。(另请参阅man journalctl。)但任何管理员都可以删除或修改日志。如果管理员做了坏事,而告诉他们停止却不起作用,那么除了删除他们的管理员身份外,你没有任何技术措施可以阻止甚至显著缓解这种情况。(如果他们真的是恶意的,他们甚至可能已经设置了后门即使行政权力被剥夺,他们仍然无法重返体制。希望你的情况不会这么极端。

最后,虽然本文不是专门针对bash、shell 历史记录或日志记录,但我认为花点时间认真思考一下管理员可以执行哪些类型的操作是值得的。正如我在这个答案什么可以阻止某人设置 root 密码?

您是该组的成员sudo。您可以删除系统上的所有文件。您可以将原始数据写入硬盘,不可恢复地覆盖硬盘上的内容。您可以访问其他用户的文件,即使他们设置了限制性权限。您可以将新固件安装到物理设备上。您可以从影子数据库中转储用户的密码并尝试破解它们,或者只是重置它们。您可以安装侵犯用户隐私或破坏数据的恶意软件,包括键盘记录器和勒索软件。您可以使用网络接口做一些非常奇怪的事情。您可以让系统误导用户有关其通信安全性的信息。您可以掩盖你的踪迹。你可以把所有这些权力,以及我没有列出的其他权力,交给那些会用它们作恶的人。当谈到滥用sudo或 Polkit 时,那些这些都是你应该关心的事情。

也可以看看黑豹的回答对这个问题

相关内容