我正在为L0团队添加sudo规则,他们将能够为OS用户更改密码。
但我不希望L0团队使用sudo来更改根密码
PS - !/usr/bin/passwd root -不工作
发布于 2022-03-11 16:02:34
如果您的用户身份验证是使用经典/etc/阴影密码完成的,那么我看到的唯一机会是:
编写您自己的passwd-alike程序,该程序只允许非根用户更改密码,并且只允许更改密码(例如通过sudo yourprogram)。/etc/阴影实际上并不难解析或编写。
更明智的是,如果您有“team”,您可能有某种形式的集中登录机制(LDAP/Kerberos?),然后LO团队(不管"L0“是什么)根本不应该使用passwd,而是直接与该系统进行接口,后者可能提供了更好的访问控制。
发布于 2022-03-12 21:40:18
与有关sudo的问题一样,答案是“编写包装器脚本,只允许使用sudo运行该脚本”。
也就是说,编写一个脚本,检查它的参数,以确保提供了用户名,并且用户名不是root (和/或其他系统帐户)。或者可能检查与该用户名对应的UID是否在分配给普通users...typically 500+或1000+的范围内,这取决于发行版)。
如果它通过了所需的任何验证检查,那么使用适当的参数运行passwd。如果没有,则使用错误消息中止,并可能记录失败的尝试。
然后,将sudo配置为允许用户以根用户身份运行脚本,而不是passwd本身。
因为脚本是以root形式运行的,所以脚本中运行的所有程序(包括passwd)也将作为root运行。
而且,因为脚本是作为root运行的,所以您需要特别小心脚本中运行的内容以及运行它的方式。引用您的变量,不要信任用户提供的数据(即,在没有验证的情况下,不要直接将参数传递给其他程序-通常最好是拒绝任何不特定允许的内容,而不是接受所有未明确禁止的内容。这样的漏洞就会少一些)。保持脚本的简洁和易于理解和调试,它应该尽可能少地验证它的输入并完成工作。
https://unix.stackexchange.com/questions/694025
复制相似问题