The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Нужно изменять пароль из программы"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Нужно изменять пароль из программы"
Сообщение от romanSA Искать по авторуВ закладки on 05-Июл-01, 19:04  (MSK)
Требуется изменить пароль пользователя из программы. Программа работает под root-ом.
ОС: BSDI BSD/4.1 . Очень желательно делать все без "хака" (только системный API, на крайний случай - запуск внешней программы). PASSWD(1) не подходит т.к. там пароли нужно задавать в открытую и их видно даже из PS.
Заранее благодарен за ответ.

romanSA.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "RE: Нужно изменять пароль из программы"
Сообщение от Арлекин Искать по авторуВ закладки on 10-Июл-01, 11:50  (MSK)
man getspnam  // для shadow.h
man getpwnam  // для pwd.h
  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "RE: Нужно изменять пароль из программы"
Сообщение от romanSA Искать по авторуВ закладки on 10-Июл-01, 15:26  (MSK)
Извините, как "читать пароли" я знаю. Но нужно их именно изменять. И потом, SHADOW-пароли хранятся на разных *NIX-ах в различных файлах. (А в BSD getspnam и др. "SHADOW"-процедур вообще нет).
  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "RE: Нужно изменять пароль из программы"
Сообщение от Арлекин Искать по авторуВ закладки on 11-Июл-01, 16:41  (MSK)
Извиняю.
Функцией проверки правильности пароля можно зашифровать новый пароль, после чего просто переписать нужный файл (в моем случае shadow) в нужном формате. Как называются во фрях шадовские функции я не знаю ( на работал на ней ни разу, хотя хотелось бы рискнуть)- я бы просто посмотрел shadow.h, если  он есть, ессно.
  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "RE: Нужно изменять пароль из программы"
Сообщение от romanSA Искать по авторуВ закладки on 12-Июл-01, 19:58  (MSK)
Вот этого я и не хотел... В смысле, переписывать "нужный файл в нужном формате". Хотелось, что-либо стандартное, да видно нету...
А "нужные файлы" в разных *NIX-ах и лежат по-разному и форматами несколько различаются.
Да, к сведению, в BSD нет _специальных_ функций доступа к shadow-паролям. Просто если root вызывает getpwnam () или аналогичное, то в поле pw_password _всегда_ лежит шифрованный пароль. И не надо вызывать никаких getspnam ().

В общем, как ни грустно, приходётся закрыть эту проблему к-либо "кустарным" методом.

Спасибо за советы.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "RE: Нужно изменять пароль из программы"
Сообщение от Арлекин Искать по авторуВ закладки on 13-Июл-01, 10:49  (MSK)
Да не за что.
Просто, как я думаю, системные проги смены паролей делают то-же самое - переписывают файл. Скажем, в Солярке и RH62, /etc/shadow вообще имеет права доступа - чтение только руту и бину. И прикол в том, что системная прога в процессе смены пароля делает 2 chmod-a и благополучно переписывает его. Не думаю, что в этом есть что-то хакерское.
ЗЫ:
Кстати, а ты не пробовал использовать popen(...); ?
  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "RE: Нужно изменять пароль из программы"
Сообщение от romanSA Искать по авторуВ закладки on 13-Июл-01, 12:19  (MSK)
Лучше не popen(), а fork() + exec*() - можно организовать взаимодействие с запускаемым процессом так, как тебе угодно. К слову, именно так я сейчас и сделал (Вызываю соответствующую системную программу /usr/sbin/adduser или /usr/sbin/useradd или ещё что-либо (зависит от задачи и ОС). Т.к. ключи команды тоже зависят от ОС, то вся исполняемая строка хранится в config-е, а исходный код прекрасно работает под BSD/Linux/AIX без изменений. В строку подставляются соответствующие параметры (напр. логин, "зашифрованный пароль" и др.) и далее она исполняется. Перехватить ввод/вывод/код возврата не составляет труда.) .
  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру