unix passwd所需的功能

时间:2011-10-22 16:57:11

标签: linux ubuntu-11.04

如果/ usr / bin / passwd不是set-UID程序,普通用户仍然需要具备哪些功能才能更改密码?

3 个答案:

答案 0 :(得分:1)

它需要能够修改/ etc / passwd,/ etc / shadow和/或其他各种文件(取决于如何配置身份验证)。

所以CAP_DAC_OVERRIDE似乎已经足够了,但是使用CAP_DAC_OVERRIDE生成一个盒子是微不足道的,因为任何二进制文件都可以被替换(例如/ bin / sh通常由root cron-jobs执行)。

在某些系统上,更改密码不需要特权,因为已经使用了守护程序,例如大多数分散的身份验证系统(nis + etc)

答案 1 :(得分:0)

您需要以root用户身份运行。 passwd需要对/ etc / passwd和/ etc / shadow进行读/写访问,这些文件只有root才能直接操作。

答案 2 :(得分:0)

除非您想要破坏系统的安全性,否则不可能。

如果“passwd”实用程序可以作为普通用户完成其工作,那么任何用户都可以编写自己的版本来更改任何其他用户的密码。 (也就是说,将源代码带到实用程序,修改它以跳过询问当前密码,编译并运行。)

我想您可以创建一个以root身份运行并侦听套接字的“密码守护程序”,以便为密码更改请求提供服务。为什么你会想要而不是set-uid / usr / bin / passwd超越我;安全隐患相同。

但无论您做什么,只能为某些受信任的进程更改密码数据库。否则任何人都可以更改别人的密码,这会破坏多用户操作系统的目的。