Password
使用 setuid 更改 root 的密碼
是否可以使用 setuid 更改 root 的密碼?
我嘗試的是編寫一個簡單的程序,該程序呼叫
system("passwd root")
由 root 擁有,並且它的 setuid 位已設置,但它不起作用。輸出是:You may not view or modify password information for root.
在您的程序中,您可能忽略了將真實有效的 uid 設置為相同的值。Gids 也應該匹配 root 的 gid。像這樣的東西:
setuid(geteuid()); setgid(getegid());
參見範例
sue
(一個簡單的 setuid/setgid 包裝器)。
托馬斯·迪基是絕對正確的。但是,不要這樣做。改為使用
sudo
。創造
/etc/sudoers.d/change_root_pass
YOURUSERNAME ALL = (ALL) passwd root
(更改您的使用者名)。