2011-10-22 55 views

回答

0

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

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

我想你可以创建一个以root用户身份运行的“密码守护程序”并监听套接字以便为密码更改请求提供服务。但是,为什么你会想要那个而不是set-uid/usr/bin/passwd?安全影响是相同的。

但是无论你做什么,只能对一些可信进程允许更改密码数据库。否则,任何人都可以更改任何人的密码,这种方式会破坏多用户操作系统的目的。

0

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

0

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

因此,CAP_DAC_OVERRIDE似乎已经足够,但是,使用CAP_DAC_OVERRIDE对一个方框进行根目录是很简单的,因为任何二进制文件都可以被替换(比如通常由root cron-jobs执行的/ bin/sh)。

在某些系统上,由于守护程序已被使用,所以不需要权限来更改密码。大多数分散的认证系统(nis +等)