我需要阻止 sudo 用户启动/重新启动或停止多个服务。
我已经编辑了/etc/sudoers:
Cmnd_Alias LIMITED_CMDS=/bin/su,/bin/systemctl stop nginx,/bin/systemctl start nginx,/bin/systemctl restart nginx
mytestuser ALL=!LIMITED_CMDS
但他可以这样做:ln -s /bin/su /tmp/su2
然后sudo su2
成为根并执行所有操作。
而且 sudo 用户可以执行sudo service stop nginx
或/etc/init.d/nginx stop
。我当然也可以在 Cmnd_Alias 中列出它们,但如果我需要将控制限制到多个服务怎么办?构造太大,无论如何,/bin/su 的 simlink 都可以解决问题。也许我错过了什么,但 Linux 是否有一个好的工具/配置来限制用户控制某些服务的权限?我在 Google 上搜索过,只找到了带有 sudoers 文件的变体,但这不是我需要的
简单的方法 - 不要给用户添加 sudo 权限:) 但在我的情况下,用户必须在 sudo 组中。
答案1
它的工作方向相反:为用户添加必要的权限,仅此而已。您尝试执行的操作将不起作用,正是因为您提到的情况。如果用户有权执行“除了所有之外的所有操作”,那么利用您没有想到的“但是”部分就很容易了。
任何对系统具有绝对控制权的用户(即sudo
组中的每个人)根据定义都是受信任的用户。如果您不信任该用户,请将其从组中删除sudo
,并仅授予他们绝对需要的权限。