题 HOW TO:禁止sudoer编辑/ etc / sudoers文件?


如何防止sudoer编辑 /etc/sudoer 文件?


5
2017-09-05 07:07




当前为该用户定义的内容 sudoers 文件? - Andrew


答案:


这取决于您使用sudo的人获得了多少访问权限。如果你给了人足够的权限让他们以不受限制的方式使用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只允许他们访问他们真正需要的那些命令 命令别名 等等


12
2017-09-05 10:26



如果我理解OP权利,他就意味着他想限制用户进行编辑 /etc/sudoers 直接归档。 - quanta
答案是相同的。一旦你给予人们足够的访问权限,就无法阻止他们做任何他们想做的事。 - Iain
我在/ etc / sudoers中添加的内容是:!/ bin / texteditor / etc / sudoers并且它可以正常工作,但是我必须找出系统中安装的所有编辑器。 - regmaster
@regmaster:如果你允许你的sudoers使用 sudo -s 然后他们仍然可以编辑它,因为他们有一个root shell。 - Iain
@lain我已经通过添加以下行禁用该功能: Cmnd_Alias NSHELLS = /bin/sh, /bin/bash, /sbin/nologin, /bin/tcsh, /bin/csh, /bin/zsh, /bin/ksh Cmnd_Alias NSU = /bin/su username ALL=(ALL) NOPASSWD: ALL, !NSHELLS, !NSU - regmaster


使用传统的unix权限,我认为这很难:只要您可以通过sudo运行任何命令,允许您进行编辑[*],那么你就有点搞砸了。

Linux中还有其他安全模型,但没有广泛部署和配置;例如,SELinux和AppArmour。您可以配置这些以限制对所需内容的访问。

从“我希望我的sudo用户能够做到”的目标开始 什么“然后取消某些特权可能是一种难以做到的事情:有许多方法可以修改不涉及直接编辑的sudoers(例如,用一个脚本代替邮件启动脚本)复制新的sudoers然后启动sendmail;重启系统;瞧!)

从这个意义上讲,如果您信任您的用户 什么 对于你的系统,你必须相信他们对你的系统做任何事情(至少在技术层面)。


3
2017-09-05 11:48



提及SELinux和AppArmor的+1,一旦你通过sudo将root密钥交给用户,这是唯一的方法:) - lynxman


有点笨拙,但你可以设置另一台机器进入你的盒子,如果有变化,或者如果它无法进入,则提醒你。给攻击者一个小机会之窗......但是降低风险。可能根本不能解决你的具体情况。


0
2018-03-29 10:21





我可能会迟到但看起来,这可能对其他人有所帮助。防止sudo用户编辑sudoers文件。

sudouser ALL=ALL, !/usr/sbin/visudo, !/usr/bin/vim /etc/sudoers

确保列出所有可用的编辑器。


0