passwd: Prompt for the current password before setting new password

This changes passwd to authenticate non-root users before prompting for
new password.
This commit is contained in:
brapru 2021-05-23 23:08:18 -04:00 committed by Andreas Kling
parent 96588adbd4
commit b0f8bccd08
Notes: sideshowbarker 2024-07-18 12:06:55 +09:00

View file

@ -84,6 +84,19 @@ int main(int argc, char** argv)
} else if (unlock) {
target_account.set_password_enabled(true);
} else {
if (current_uid != 0) {
auto current_password = Core::get_password("Current password: ");
if (current_password.is_error()) {
warnln("{}", current_password.error());
return 1;
}
if (!target_account.authenticate(current_password.value().characters())) {
warnln("Incorrect or disabled password.");
return 1;
}
}
auto new_password = Core::get_password("New password: ");
if (new_password.is_error()) {
warnln("{}", new_password.error());