Добрый день.
Возникла задача изменить функцию авторизации, то есть чтобы кроме стандартных действий она выполняла нужные мне. Я подумываю о таком решении:
1) реализовать функции авторизации (getpwent и т.д) в отдельной библиотеке
2) изменить LD_LIBRARY_PATH для вызова моей библиотеки
3) из своих функций вызывать родные линуксовские
Всвязи с этим возникли вопросы:
1) должно-ли сработать такое решение?
2) где реализованы функции авторизации (те что прописаны в /usr/include/pwd.h) ? ничего подобного libpwd.so не нашел
3) может быть требуемая задача решается более простым способом?
Изменение авторизации
2) где реализованы функции авторизации (те что прописаны в /usr/include/pwd.h) ? ничего подобного libpwd.so не нашел
как определить:
$ sudo ldd /bin/passwd
# далее для каждой библиотеки:
$ objdump -T </путь/к/либе.so> | grep getpwent
путём не хитрых манипуляций выходим на libc.
может есть способ проще и красивее это посмотреть...
1) 3) хз.... сдаётся вы что-то тёмное и нехорошее задумали...
нормальное решение - это написать свои враперы с другими именами и использовать их в остальном коде.
для чего такая задача возникла?
для чего такая задача возникла?
требование заказчика написать патч, который позволит использовать при авторизации аппартаные идентификаторы
Кстати да. Есть файл, например /etc/passwd, есть команды, что еще нужно.
требование заказчика написать патч, который позволит использовать при авторизации аппартаные идентификаторы
а чем не подходит:
нормальное решение - это написать свои враперы с другими именами и использовать их в остальном коде.
такое извращение ИМХО уместно только если бинарник нельзя менять...
[quote="kryuch"]требование заказчика написать патч, который позволит использовать при авторизации аппартаные идентификаторы
а чем не подходит:
нормальное решение - это написать свои враперы с другими именами и использовать их в остальном коде.
такое извращение ИМХО уместно только если бинарник нельзя менять...[/quote]
Надо чтобы ОС использовала апаратные идентификаторы при проверке. То есть делает юзер su а там сразу апаратный идентификатор проверяется
Надо чтобы ОС использовала апаратные идентификаторы при проверке. То есть делает юзер su а там сразу апаратный идентификатор проверяется
с этого и надо было начинать, что на всю систему это должно распространяться...
большая часть программ сейчас работает или умеет работать через pam ...
ИМХО в его стороны и надо копнуть для начала.
наверняка уже есть что-то готовое - но это уже зависит от типа "аппартаного идентификатора"
Спасибо, разобрался с проблемой. Оказывается через PAM элементарно делается.