![锁定 Linux 并记录所有 root 操作](https://linux22.com/image/797845/%E9%94%81%E5%AE%9A%20Linux%20%E5%B9%B6%E8%AE%B0%E5%BD%95%E6%89%80%E6%9C%89%20root%20%E6%93%8D%E4%BD%9C.png)
我想做几件事。我想有一个 sudoers 文件,可以访问除“sudo su -”和“sudo rm {anything in var log}”之外的所有命令。第二个纯粹是为了防止有人删除他们一直在做的事情。这样,我就可以记录管理员以 root 身份运行的所有命令的历史记录.....如果可能的话,加上时间戳会更好吗?
然后,我们使用名为 serveruser 的用户运行服务器。我希望任何人想要以该用户身份运行的命令每次也必须执行类似 sudo 的操作,并且我们将每个命令记录为实际运行该命令的用户。我不希望有人执行“sudo su - serveruser”然后运行命令,因为我无法访问谁运行了这些命令。
如何锁定服务器以便查看所有信息并进行跟踪?我们只是希望能够看到系统出现问题时发生了什么,以便我们能够扭转错误并与执行这项工作的人交谈。
谢谢,Dean
答案1
简短回答:您无法通过 sudo 执行任何操作(以任何可行的方式)。如果您删除了sudo su -
功能,那么您必须指定它们可以单独运行的内容。我从小道消息听说,sudo 并不是万无一失的。您可以欺骗它并让它执行管理员试图阻止您执行的操作。
您需要的是一个审计系统,它需要记录到远程主机,而本地服务器的 root 权限无法访问该主机。否则,您就是把王国的钥匙交给了您(显然)不信任的人,并希望获得最好的结果。
如果这是工作场所的要求,我强烈建议您花钱购买 Beyond Trust(原名为 Symark)的 PowerBroker。它并不便宜,但它可以满足您的需求:分配细粒度的权限并记录它们。
答案2
我发现有一些不错的东西,比如 rootsh 和其他东西,也许可以编写一个简短的脚本。它不是 100% 安全的,但我不需要它...如果我们的某个管理员想破坏我们的系统,他们无论如何都可以....我们都只是想要可追溯性,这样我们的管理员就可以开始运行“fakesudo.sh 用户”,这可以为我们完成工作。