如何在Linux(CentOS)中限制某些管理员命令

如何在Linux(CentOS)中限制某些管理员命令

如何在Linux(CentOS)中限制一些管理员命令

我尝试在 root 中使用visudo,然后写

ABC ALL=ALL,!/bin/rm,!/bin/sudo

限制“ABC”用户不可以删除一些重要文件。

它在 ABC 用户中运行得很好,当我输入 sudo rm -rf /etc/或删除一些需要超级用户的重要文件时,Linux 拒绝了我的命令。

但是脚本中有一个问题。如果我编写一个关于 的脚本,该脚本可以工作并通过使用来执行sudo rm -rf /etc/删除我的脚本。/etc/sudo

所以visudo看起来不能在脚本中工作。我该怎么办?

我需要我的管理员用户可以使用所有命令,但不能删除我的系统文件。

答案1

我需要我的管理员用户可以使用所有命令,但不能删除我的系统文件。

这是不可能的(特别是如果您想防止某些恶意 Linux 专家的攻击),因为 root uid 0 拥有或可以获得所有权限。但是,还请阅读能力(7)(Linux 特定)。

如果你只是想避免错误,你可以使用查特尔(对于不可变标志)。但坚定的管理员仍然可以删除此类“不可变”文件(通过首先删除不可变标志)。

(我猜您最担心的是初级管理员犯下的小错误,而不是恶意黑客)

我建议您定期备份/etc/(也许在某些远程计算机上),这总是一件好事。您也可以拥有自己的rm(作为别名、函数、另一个可执行文件......),并决定进行版本控制/etc/(例如使用git, 看等等管理员

另请阅读有关设定值可执行文件和塞特鲁伊德(2)(而且当然执行(2)....) 系统调用(此机制是 Unix 上的基本保护砖,由sudo& su&使用login)。

顺便说一句,信任主要是一个社会问题,想要纯粹的技术解决方案来解决社会问题是不明智和天真的。

相关内容