如何检查谁在 Debian 上运行更新或安装的软件包?

如何检查谁在 Debian 上运行更新或安装的软件包?

我处于一种相当奇怪的情况,我不信任所有拥有 sudo 权限的用户,而且我对此无能为力。我想定期检查除了我之外是否有人安装了任何软件包,甚至更糟糕的是,运行更新,而无需在我的 Debian/Ubuntu 服务器上咨询我。在其他运行 CentOS 的服务器上我使用yum history.有没有办法找出谁调皮了?我会睡得更好...

预先感谢您的任何帮助。

答案1

我假设其他用户并没有试图向您隐瞒任何事情,他们只是有点无能或烦人。如果他们想隐藏,他们可以,而你却无能为力。

中有 apt 使用日志/var/log/apt和 dpkg 使用日志/var/log/dpkg.log。它们告诉您何时进行了哪些包操作;他们不会告诉您是谁,但您可以通过与 的输出进行比较来获得提示last

/etc通过置于版本控制之下,您可以对包操作和配置更改进行有用的跟踪。等等管理员(在 Debian 和 Ubuntu 上作为软件包提供)做得很好。安装它并编辑/etc/etckeeper/etckeeper.conf以根据您的喜好配置它:

  • 设置VCS为您最喜欢的版本控制系统。
  • 确保AVOID_DAILY_AUTOCOMMITS已将其注释掉。如果有人对 进行了更改/etc,它将被记录在自动提交中。不会有有意义的日志消息,但至少会跟踪更改及其大致日期。
  • 确保AVOID_COMMIT_BEFORE_INSTALL已将其注释掉。同样,在使用任何 APT 工具( aptapt-getaptitude等)之前都会有一个自动提交。在包管理操作之后总是会自动提交,列出所做的更改。

确保设置正确的环境变量或配置文件来记录提交者的身份。根据人们如何获得 root(通过susudo等),这可能意味着修改 root 的.profile.bashrc(如果人们使用sudo -s),或者甚至可能添加一个提交钩子以$SUDO_USER安排记录的提交者不仅仅是root

相关内容