Задача следующая, имеется поднятый (наконец-то) pppd, необходимо перехватывать имена юзеров (login) и tty по которому произвелось подключение, при их коннекте к серверу, и после записывать эти данные в базу данных вместе с временем подключения и после уже отключения.
С последним в принципе проблем не будет, опыт занесения сведений в базу данных уже имеется, да и дата будет подставляться к записи в самой базе
автоматически, либо передаваться вместе с именем пользователя и tty при непосредственном занесении данных.Планирую осуществить данное мероприятие с помощью файлов (скриптов на перле) auth-up и auth-down находящихся в /etc/ppp/, то есть auth-up должен
выполняться при входе пользователя в систему, перехватывая введенный им login и используемый tty, а auth-down вызываться при его отключении с
занесением времени отключения пользователя для последующего анализа проведенного им общего времени на линии.Хотелось бы услышать советы и реальные примеры как перехватывать имя пользователя (login) и используемый им tty, когда тот входит в систему для последующего занесения в базу данных.
Также второй беспокоящий вопрос заключается в том, при отключении пользователя из системы, как отследить с помощью auth-down, что отключился
именно тот юзер, который входил ранее и записать время отключения именно для этого юзера, а не для какого-нибудь другого, который зашел в другое время и сейчас отключился. То есть думаю понятно, каким образом "провести" эту сессию работы конкретного пользователя от начала до конца?Заранее благодарен за толковые идеи и примеры реализации задуманного.
Вот выдержка из man pppd, в которой говорится о пяти параметрах, которые насколько я понимаю могут пониматься в файлах auth-up и auth-down.
А как мне в перле перехватить значения попадающие в них, чтобы потом в свою очередь передать уже в базу реальные данные?
/etc/ppp/auth-up
A program or script which is executed after the
remote system successfully authenticates itself.
It is executed with the parametersinterface-name peer-name user-name tty-device speed
Note that this script is not executed if the peer
doesn't authenticate itself, for example when the
noauth option is used.