2013-10-27 60 views

回答

3

passwd程序在安裝setuid root

$ ls -l `which passwd` 
-rwsr-xr-x 1 root root 41284 Sep 12 2012 /usr/bin/passwd 

注意s在第四的位置。這是一個可以在文件權限中設置的標誌,它告訴Linux在運行時擁有可執行文件的用戶的特權 - 在本例中爲root。

+0

問這個問題但要更改密碼,程序必須寫入密碼數據庫。我想只有root可以訪問該數據庫(否​​則任何普通用戶都可以直接更改數據庫)。所以,問題是,如果有人不能更改密碼數據庫,他們如何更改密碼? – Chen

+0

setuid標誌意味着'passwd'使用root權限運行,而不是調用它的用戶 - 因此'passwd'程序可以讀/寫'/ etc/shadow'。 – pobrelkey

-1

用戶可以只改變從Linux命令行運行

passwd 

密碼。

+0

這是真的,但它並不能解釋passwd如何寫入/ etc/shadow文件。 – 8128

相關問題