如何防止sudoer编辑/etc/sudoer文件?
这取决于你使用sudo的人有多less访问权限。 如果你赋予人们足够的特权使他们能够无限制地使用sudo,那么你几乎不得不相信他们。
你可以明确的拒绝对visudo命令的访问
sudouser ALL=ALL, !/usr/sbin/visudo
然后
$ sudo visudo [sudo] password for sudouser: Sorry, user sudouser is not allowed to execute '/usr/sbin/visudo' as root on host1.lan
然而这并不能阻止人们运行一个shell然后运行visudo
sudo -s visudo
答对了 !
唯一的解决办法是通过sudo来缩小人们的访问范围。 要做到这一点,你将不得不分析他们的特权要求,并通过sudo给他们访问只有那些他们真正需要使用的命令别名等命令
使用传统的unix权限,我认为很难:只要你可以通过sudo运行任何命令,这将允许你编辑[*],那么你有点拧。
Linux中还有其他的安全模型,但是没有被广泛的部署和configuration。 例如,SELinux和AppArmour。 你也许可以configuration这些来限制访问你想要的东西。
从“我希望我的sudo用户能够做任何事情 ”开始,然后拿走某些特权可能是一个很难做的事情:有很多方法可以修改不涉及直接编辑的sudoers(例如,用一个脚本replace邮件启动脚本,我)复制一个新的sudoers,然后启动sendmail; 重启系统; 瞧!)
从这个意义上讲,如果你相信你的用户对你的系统做任何事情 ,那么你必须相信他们对你的系统做任何事情(至less在技术层面上)。
有点笨重,但你可以设置另一台机器ssh到你的盒子,并提醒你,如果有变化,或者如果它不能ssh。给攻击者一个小窗口的机会…但是降低风险。 可能根本不能解决你的具体情况。