有没有办法在所有命令之前自动运行 sudo(嗯,有点......请继续阅读)

有没有办法在所有命令之前自动运行 sudo(嗯,有点......请继续阅读)

我总是喜欢在以“服务器用户”身份操作时使用 sudo 命令,这样我的所有操作都会记录在 sudo 日志中,以后我可以对其进行逆向工程。但是,我不想每次都输入 sudo -u serveruser,也不想创建别名。有没有一个程序或类似的东西可以让我执行一个 shell,这样我运行的每个命令实际上都会以 sudo -u serveruser 作为前缀,这样感觉我就是用户本人。

如果是这样,我可以为所有管理员设置它,他们甚至不会真正注意到差异,并且我们可以通过 sudo 日志免费获得历史记录。

编辑:我正在寻找的是这些东西

  1. 非常简单的设置(我们的 sudo 已经设置好了,除了这个类似 sudo 的 shell 就更好了)
  2. 日志时间戳
  3. 记录用户执行命令(在本例中可能是我,也就是 Dean)
  4. 记录执行命令的用户(在本例中为 serveruser)
  5. 记录实际的命令

sudo 开箱即用,可以执行 2-5 项操作,但我正在尝试为用户找出 #1,因为我们(这个团队中的人)不想一直输入 sudo :(。

编辑:也许有一种方法可以在 bash 中吸收 stdin 和 stdout 来编写一个脚本,这样就可以调用 sudoshell -u username,然后我在 stdin 上输入的任何命令(除了“exit”)都会用 sudo -u username 运行。有没有办法让所有管理员都可以运行这样的脚本?然后当有人运行 sudo su - 我可以记录一条消息来运行该 shell,如下所示......这样效果会很好。有什么想法吗?

谢谢,Dean

答案1

你正在寻找的是审计线索。Sudo 可以提供它(有限制),但还有其他方法可以实现它。

如果你只需要记录输入到 shell 中的内容,而不想安装其他软件包,bash 4 可以配置为通过 syslog 记录历史记录

您还可以从可用的大量审计包中进行选择。一个快速简单的解决方案可能是史努比记录器

答案2

我总是喜欢在以我们的“服务器用户”身份操作时使用 sudo 命令,以便我的所有操作都记录在 sudo 日志中,并且我可以稍后对其进行逆向工程。

听起来您想记录所有 sudo 命令,以便以后可以审核它。

你应该看看sudosh2。描述如下:

sudosh 是一个审计 shell 过滤器,可以用作登录 shell。Sudosh 记录所有击键和输出,并可以像 VCR 一样回放会话。

例如:用户 joe 登录系统,输入sudo sudosh并被授予超级用户权限。此后,所有输入和输出都将被记录。日志将保存到文件中,或通过 syslog 发送到中央 syslog 服务器(无法删除)。您可以重播日志并准确查看用户输入的内容(您甚至可以看到拼写错误、退格键等)和输出。

它可能无法满足您的所有要求,但听起来您愿意接受类似的选择。

有关详细信息,请参阅我的其他回答记录从 root 执行的每个命令

相关内容