2011-10-22 52 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 +等)