LINUX.ORG.RU

logon/ Logout


0

0

Здравствуйте!
Подскажите, пожалуйста, как в Linux программным способом определить, что был выполнен Logon и Logout? Предполагается, что есть некоторый демон, который должен реагировать на данные события.
Спасибо!

Re: logon/ Logout

например парсить логи

cvv ★★★★★ ()
Ответ на: Re: logon/ Logout от cvv

Re: logon/ Logout

ещё кажись utempter какоето отношение имеет к этому делу

cvv ★★★★★ ()
Ответ на: Re: logon/ Logout от cvv

Re: logon/ Logout

Должен быть другой способ - сообщение какое-нибудь. В цикле парсить?

pavelp ()
Ответ на: Re: logon/ Logout от pavelp

Re: logon/ Logout

Переделай login, чтобы он слал сообщения.

stassats ★★★★ ()
Ответ на: Re: logon/ Logout от pavelp

Re: logon/ Logout

utempter к Login и к Logout, вроде бы, никакого отношения не имеет.

pavelp ()
Ответ на: Re: logon/ Logout от stassats

Re: logon/ Logout

Переделать login и поставлять его вместе с моей программой?
Еще кто-нибудь знает какие возможности?

pavelp ()

Re: logon/ Logout

Можно попробовать использовать возможности man wtmp (man utmp):

The utmp file allows one to discover information about who is currently using the system.

kondor ★★★ ()
Ответ на: Re: logon/ Logout от kondor

Re: logon/ Logout

он позволяет узнать, но не отловить тот момент, когда произошло разлогирование или логирование.

pavelp ()
Ответ на: Re: logon/ Logout от pavelp

Re: logon/ Logout

> но не отловить тот момент, когда произошло разлогирование или логирование.

Читать раз в секнду?

Ximen ★★★★ ()

Re: logon/ Logout

Написать свой модуль для pam, который будет посылать сообщения кому надо.

ero-sennin ★★ ()
Ответ на: Re: logon/ Logout от pavelp

Re: logon/ Logout

> он позволяет узнать, но не отловить тот момент, когда произошло разлогирование или логирование.

> Предполагается, что есть некоторый демон, который должен реагировать на данные события.

Ну так проверяй каждые, скажем, N минут после получения состояний: if (Billy.isLogged() && !prevState.isLogged(Billy)) -> Billy залогинился. Аналогично с logout.

Хотя, если есть стандартные средства, то мне было бы тоже интересно о них узнать, а не изобретать велосипед, как сделано это выше :).

kondor ★★★ ()
Ответ на: Re: logon/ Logout от kondor

Re: logon/ Logout

Максимум стандартный модуль для pam

cvv ★★★★★ ()
Ответ на: Re: logon/ Logout от cvv

Re: logon/ Logout

+1 к pam

Однако вот что: все равно при login выполняются скрипты, равно как и при logoff. Кто мешает их переписать так, чтобы оно хоть обоповещалось - непонятно.

annoynimous ★★★★★ ()
Ответ на: Re: logon/ Logout от annoynimous

Re: logon/ Logout

> при login выполняются скрипты

Наверное, автор вопроса был бы вам признателен ещё больше за ваш ответ, если бы вы указали конкретные скрипты.. я так думаю.

anonymous ()
Ответ на: Re: logon/ Logout от pavelp

Re: logon/ Logout

>он позволяет узнать, но не отловить тот момент, когда произошло разлогирование или логирование.

Для этого есть knotify & inotify.

Sectoid ★★★★★ ()

Re: logon/ Logout

С ходу видно два способа:
1) следить за wtmp/lastlog при помощи *notify и анализировать все изменения
2) написать либу для pam и прописать ее в /etc/pam.d - самый универсальный метод

Deleted ()
Ответ на: Re: logon/ Logout от Deleted

Re: logon/ Logout

А что такое *notify? Где об этом узнать поподробнее?

pavelp ()
Ответ на: Re: logon/ Logout от pavelp

Re: logon/ Logout

Это системный вызов, позволяющий узнать о событии на файловой системе. http://linux.die.net/man/7/inotify и еще http://linux.die.net/man/2/fcntl.

Вам нужно определиться, каким образом нужно отслеживать login/logout --- "асинхронным" или "синхронным". В первом случае ваша программа определяет факт login'а, и производит нужные действи, но процесс login'а не останавливается. В этом случае нет особой разницы, следить за log-файлом через *notify или проверять его раз в секунду. Все равно нельзя четко сказть, когда ваша программа выполнит неободимые действия по отношению к моменту login'а.

Если же нужен "синхронный", то есть процесс login'а должен приостонавливаться, пока ваша программа не сделает нужные действия, то пишите модуль PAM...

mky ★★★★★ ()
Ответ на: Re: logon/ Logout от mky

Re: logon/ Logout

Как я понял, модуль PAM поможет мне определить момент логона. А как быть с логаутом?

pavelp ()
Ответ на: Re: logon/ Logout от pavelp

Re: logon/ Logout

PAM это хорошо, но PAM используется не везде.

Anoxemian ★★★★★ ()
Ответ на: Re: logon/ Logout от pavelp

Re: logon/ Logout

Правильно написанные приложения используют pam не только для login'а, но и для logout'а --- вызвываются функции pam_close_session() и pam_end().

Но PAM, действительно есть не везде. И приложение, через которое пользователь "заходит"/"выходит" (например, sshd) может быть скомпилированно без поддержки PAM, хотя это встречается не так часто.

Ваши слова :

>Переделать login и поставлять его вместе с моей программой?

намекают на многоплатформенность? Все таки напишите, какого рода программу вы хотите создать и на каких платформах (дистрибутивах) она должна работать.

mky ★★★★★ ()
Ответ на: Re: logon/ Logout от mky

Re: logon/ Logout

Пока это не приложение, а исследование. Ясно только, что при логине и логауте необходимо будет выполнять какие-то действия, но сути, по-моему, это не меняет. Ну, а раз исследование - необходимо охватить как можно больше систем.

pavelp ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.