Ric*_*tmo 0 command-line bash administrator bash-history
我有一些管理员不想看到他们的活动。
set +o history
一旦他们登录,他们就会巧妙地运行。这样做意味着他们运行的命令不会被记录在历史文件中。
有没有办法设置.bash_history
属性不允许这样做?
TL; DR:号有没有办法做到这一点,不能非常容易地围绕工作。更一般地说,您不能授予某人对计算机系统的完全控制权,然后成功阻止他们执行特定操作。
此答案基于以下假设,您似乎表明情况确实如此。请注意,尽管我在这里使用了一些听起来像法律的措辞,但我所谈论的是技术性和实用性/社会性。这篇文章不是关于法律的。
sudo
和/或Polkit。(这种能力在 Ubuntu 中就是“管理员”或“管理员”的意思——本质上,它在任何系统上都意味着什么。)如果这些假设成立,那么最好的情况是您尚未要求您的管理员避免试图隐瞒他们的行为。在那种情况下,可以想象,您可以简单地向他们明确说明这一要求,并且他们会遵守。如果事实证明这是可行的,那么我建议您询问您的管理员为什么他们一直在隐瞒他们的行为。或许他们也将系统用于涉及必须保护的有关他们自己或他人的敏感信息的非管理任务。如果是这样,那么要么这是对系统的不当使用,您可以告诉他们停止这样做,要么是在这种情况下的适当使用这是可以通过技术措施解决的问题 - 具体来说,可以为它们提供单独的非管理员帐户以用于此类用途。
除此之外,阻止他们继续隐瞒他们正在执行的操作的唯一方法是删除他们的提升权限(如user535733 提到的)。
正如您所描述的情况,系统授予他们与授予您相同的技术能力。您可以采取的任何措施来防止bash
记录历史记录,他们都可以轻松撤消。他们也可能让你很难知道他们已经撤消了。作为众多示例中的一个,他们可以让它记录历史,但可以自动或手动编辑历史文件。此外,他们可以在history
将历史记录写入文件之前使用内置函数来编辑或删除历史记录行。
此外,即使记录了历史记录,Bash 也有意设计为允许用户防止任何单个命令被记录在历史记录中。这是通过以一个或多个空格开头的命令来实现的,并且在无法避免运行其参数包含敏感数据的命令的情况下通常很有用,以及防止在其他情况下很容易造成伤害的命令(例如,一些rm -r
命令)以免被意外检索并从历史记录中运行。
此外,用户不必隐藏或避免写入他们的 Bash 历史记录,从而难以或不可能发现他们正在执行的操作。他们不需要使用外壳,如果他们确实使用外壳,则不必如此bash
,如果是bash
,它可以是一个单独的实例bash
,并带有诸如--norc
防止它读取配置之类的选项运行文件。他们可以运行像vim
或这样的程序,emacs
并用它来做他们想做的任何事情,包括但不限于启动一个新的 shell、一个解释器,如python3
,或其他强大的程序,如mc
.
查看用户的~/.history
文件不是审核其管理操作的好方法,因为上述所有可用于规避此问题的技术也有相当频繁的其他用途。例如,许多用户在 shell 之外执行非平凡的任务。外壳历史记录,当它被记录时,是为了用户的方便而记录的。它不能可靠地用于任何其他目的。
您可以查看日志以查看已执行的管理操作,例如/var/log/auth.log
. (另请参阅man journalctl
。)但任何管理员都可以删除或修改日志。如果您有管理员做坏事,并且告诉他们停止不起作用,那么您没有技术措施来防止甚至显着减轻这种情况,除非将他们作为管理员删除。(如果他们真的是恶意的,他们甚至可能在系统中设置了后门,即使他们的管理权被取消,他们也可以重新进入。希望你的情况不是这种极端。)
最后,虽然这不是专门关于bash
shell 历史记录或日志记录,但我认为花点时间真正考虑一下管理员可以执行哪些类型的操作是值得的。正如我在写这个答案到什么站距离设置root密码的人?:
您是该
sudo
组的成员。您可以删除系统上的所有文件。您可以将原始数据写入硬盘,不可恢复地覆盖那里的数据。您可以访问其他用户的文件,即使他们设置了限制性权限。您可以在物理设备上安装新固件。您可以从影子数据库中转储用户的密码并尝试破解它们,或者只是重置它们。您可以安装侵犯用户隐私或破坏数据的恶意软件,包括键盘记录器和勒索软件。你可以用你的网络接口做一些非常奇怪的事情。您可以让系统错误地告知用户其通信的安全性。你可以掩盖你的踪迹. 你可以将所有这些权力,以及我没有列出的其他权力,交给那些将它们用于邪恶的人。当谈到滥用sudo
或 Polkit 时,这些是您应该关注的事情。
归档时间: |
|
查看次数: |
206 次 |
最近记录: |