Linux passwd 使用者權限更改

Linux passwd 使用者權限更改

當我看著

usr/bin/

目錄中,我看到帶有 passwd 的命令列

-rwsr-xr-x. 1 root root 30768 2012-02-22 20:48 /usr/bin/passwd

並且它允許更改以獲得root權限。與 s。

我想知道只有 root 可能可以更改其他使用者的密碼

passwd   user

我想找到這個命令的位置並查找它。

該指令也是 usr/bin/ 目錄的一部分嗎?或者是別的東西

我想做的是。

我登入

user1

並輸入

[user1] passwd user2

當然它在某種程度上被阻止了。但我想了解更多。

答案1

Unix(和Linux)有這樣的概念真實的使用者和有效的用戶。 setuid 程序,例如/usr/bin/passwd將有效使用者設定為文件的擁有者;在本例中,它將有效用戶設定為root

現在,程式如何使用這些提升​​的權限取決於程式本身。

對於該passwd程序,如果您傳遞用戶名,那麼它將檢查是否真實的用戶是root;如果是則成功,否則回傳錯誤。

因此root用戶可以運行/usr/bin/password user2並且這將起作用,但是如果user運行相同的命令則會失敗。只有一個程序,但它的工作方式會根據運行它的用戶而變化。

答案2

passwd二進位檔案是 suid,因為它需要 root 權限才能修改該/etc/shadow檔案。它不允許非特權使用者修改其他使用者的密碼。它將允許root修改任何用戶的密碼,但這不是它是 suid 的原因。

相關內容