当普通用户想要更改 passwd 文件时,用户将通过 setuid 获得有效用户访问权限。用户暂时成为 root,可以编辑密码。
但是,您只能正确编辑密码,而不是其他所有人?但是,您的有效用户访问权限是 root。那么为什么除了您的密码之外,您不允许更改其他密码?
当你用 setuid 运行一个程序时,当有效用户是 root 而真正的用户 ID 仍然是你的名字时,这实际上意味着什么?
Dav*_*rtz 13
您不能更改其他密码,因为程序不允许您这样做。该程序具有更改其想要的任何密码的系统权限,因为它以 身份运行root
,但该程序经过专门设计,不会为用户提供任何方式来使用这些权限。
并不是说用户暂时变成了root,而是受信任的程序以root权限运行。显然,只有专门设计用于限制用户只做他们应该被允许做的事情的程序才能安全地设置为 setuid。