首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Sudo Help -普通用户不应将root密码更改为sudo。

Sudo Help -普通用户不应将root密码更改为sudo。
EN

Unix & Linux用户
提问于 2022-03-11 15:16:26
回答 2查看 308关注 0票数 1

我正在为L0团队添加sudo规则,他们将能够为OS用户更改密码。

但我不希望L0团队使用sudo来更改根密码

PS - !/usr/bin/passwd root -不工作

EN

回答 2

Unix & Linux用户

发布于 2022-03-11 16:02:34

如果您的用户身份验证是使用经典/etc/阴影密码完成的,那么我看到的唯一机会是:

编写您自己的passwd-alike程序,该程序只允许非根用户更改密码,并且只允许更改密码(例如通过sudo yourprogram)。/etc/阴影实际上并不难解析或编写。

更明智的是,如果您有“team”,您可能有某种形式的集中登录机制(LDAP/Kerberos?),然后LO团队(不管"L0“是什么)根本不应该使用passwd,而是直接与该系统进行接口,后者可能提供了更好的访问控制。

票数 2
EN

Unix & Linux用户

发布于 2022-03-12 21:40:18

与有关sudo的问题一样,答案是“编写包装器脚本,只允许使用sudo运行该脚本”。

也就是说,编写一个脚本,检查它的参数,以确保提供了用户名,并且用户名不是root (和/或其他系统帐户)。或者可能检查与该用户名对应的UID是否在分配给普通users...typically 500+或1000+的范围内,这取决于发行版)。

如果它通过了所需的任何验证检查,那么使用适当的参数运行passwd。如果没有,则使用错误消息中止,并可能记录失败的尝试。

然后,将sudo配置为允许用户以根用户身份运行脚本,而不是passwd本身。

因为脚本是以root形式运行的,所以脚本中运行的所有程序(包括passwd)也将作为root运行。

而且,因为脚本是作为root运行的,所以您需要特别小心脚本中运行的内容以及运行它的方式。引用您的变量,不要信任用户提供的数据(即,在没有验证的情况下,不要直接将参数传递给其他程序-通常最好是拒绝任何不特定允许的内容,而不是接受所有未明确禁止的内容。这样的漏洞就会少一些)。保持脚本的简洁和易于理解和调试,它应该尽可能少地验证它的输入并完成工作。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/694025

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档