PAM: как мне изменить чужой пароль? - PullRequest
0 голосов
/ 16 февраля 2012

Какой вызов PAM мне нужно сделать, чтобы сбросить пароль пользователя? Я не могу понять это.

Справочная информация:

Я работаю на встроенном устройстве Linux. Клиенты устанавливают это устройство и создают учетные записи пользователей. Если одна из этих дополнительных учетных записей пользователей блокируется или пользователь забывает свой пароль, нам нужен способ, с помощью которого пользователь №1 может сбросить пароль для пользователя №2. Наше преобразование в PAM новое, я сейчас нахожусь в процессе перехода на него. Вот звонки, которые я делаю для аутентификации пользователей:

pam_start();
pam_authenticate();
pam_acct_mgmt();
pam_end();

Я вижу pam_chauthtok() для изменения моего собственного пароля, что я не понимаю, если - или как? - Я могу использовать его или другой аналогичный вызов, чтобы назначить новый пароль для другой учетной записи пользователя.

1 Ответ

1 голос
/ 16 февраля 2012

Смысл существования отдельных пользователей заключается в том, что они не могут делать такие вещи, как изменение пароля друг друга.Чтобы изменить пароль пользователя с помощью PAM, вам нужно стать этим пользователем.Самый простой способ сделать это - иметь двоичный файл setuid-root или демон, который запускается от имени root, который вызывает setuid и т. Д., Чтобы стать желаемым пользователем, а затем выполняет операции по смене пароля.

Конечно, это подвергает всю вашу систему большому риску, особенно если вы еще не разбираетесь в этих вопросах (что ясно из вашего вопроса), поэтому я бы дважды подумал, нужна ли эта функция, и если да, то, следует ли вам нанять эксперта, чтобы справиться с этим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...