
Как при входе любого пользователя запустить скрипт?
Модератор: Bizdelnick
-
- Сообщения: 311
- ОС: Debian
Как при входе любого пользователя запустить скрипт?
Как при входе любого пользователя запустить скрипт? Тоесть польователь может зайти к примеру удаленно по ssh под пользователем user1 или локально под пользователем root. В обоих случаях нужно запускать скрипт... как? 

newblog.kz - заработай на своих статьях :)
-
- Сообщения: 311
- ОС: Debian
Re: Как при входе любого пользователя запустить скрипт?
разобрался.. можно записать в /etc/profile

newblog.kz - заработай на своих статьях :)
-
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: Как при входе любого пользователя запустить скрипт?
юзер может зайти минуя этот файл. внимательно посмотрите man login, и man bash (если юзер входит в bash)
Спасибо сказали:
-
- Сообщения: 311
- ОС: Debian
Re: Как при входе любого пользователя запустить скрипт?
Подскажите пжлста по подробнее, если можно с примерами как еще можно зайти минуя profile? И как это можно будет отследить

P.S.: Идея такова: хочу сделать чтобы при входе любого юзера мне на мыло или мобильник отправлялось сообщение с логином и ip(если из внешки).. Поэтому мне нужно предугадать все способы авторизации в системе..
newblog.kz - заработай на своих статьях :)
-
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: Как при входе любого пользователя запустить скрипт?
ssh user1@host bash
PAM Вам в помощь.
Мои розовые очки
Спасибо сказали:
-
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: Как при входе любого пользователя запустить скрипт?
это от системы сильно зависит. не знаю как у вас. ИМХО надёжнее проверять тех, кто в системе (можно убрать тех кто там всегда, например root'а, с его демонами). (man ps)
ну и можно посмотреть, как входит юзер, через что. вот например для sshd
8. If ~/.ssh/rc exists, runs it; else if /etc/ssh/sshrc exists, runs it; otherwise runs xauth. The
“rc” files are given the X11 authentication protocol and cookie in standard input. See SSHRC,
below.
т.е., перед входом юзера по ssh запускается /etc/ssh/sshrc
(только всё это возможно дистроспецифично - лучше свои маны читать, там написано как оно у вас. например я слышал, в вашей ос вообще какой-то свой dash, а не bash)
ага. можно
bash --noprofile
-
- Сообщения: 311
- ОС: Debian
Re: Как при входе любого пользователя запустить скрипт?
- так пользователя даже через who не видноssh user1@host bash

newblog.kz - заработай на своих статьях :)
-
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: Как при входе любого пользователя запустить скрипт?
Тут даже --noprofile не нужен. bash не исполняет .profile, если он не login shell, а тут он не login. У меня даже специательный суперскрипт имеется, чтобы запускать программы сразу по ssh так, как будто я полноценно залогинился (почти):
Код: Выделить всё
#!/bin/sh
# This script is called run-with-profile (or rwp for short)
if [ -r $HOME/.profile ]; then
. $HOME/.profile
elif [ -r $HOME/.bash_profile ]; then
. $HOME/.bash_profile
fi
exec "$@"
Мои розовые очки
-
- Сообщения: 311
- ОС: Debian
Re: Как при входе любого пользователя запустить скрипт?
watashiwa_daredeska писал(а): ↑15.06.2010 18:50Тут даже --noprofile не нужен. bash не исполняет .profile, если он не login shell, а тут он не login. У меня даже специательный суперскрипт имеется, чтобы запускать программы сразу по ssh так, как будто я полноценно залогинился (почти):Теперь по ssh -t user@host rwp screen -DR default я попадаю сразу в свою любимую screen-сессию со всеми причиндаламиКод: Выделить всё
#!/bin/sh # This script is called run-with-profile (or rwp for short) if [ -r $HOME/.profile ]; then . $HOME/.profile elif [ -r $HOME/.bash_profile ]; then . $HOME/.bash_profile fi exec "$@"
Можно ли отловить вход пользователя не используя PAM если bash не login shell? Желательно стандартными средствами которые есть в любом дистрибутиве без предварительной настройки и установки какого-либо софта..
newblog.kz - заработай на своих статьях :)
-
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: Как при входе любого пользователя запустить скрипт?
В общем случае — нет. Ибо через тот же ssh пользователь может запускать вообще всё, что угодно, а не только шелл, в том числе и такие программы, которые не умеют исполнять скрипты (например, ssh user@host ls).
Мои розовые очки
Спасибо сказали:
-
- Сообщения: 311
- ОС: Debian
Re: Как при входе любого пользователя запустить скрипт?
watashiwa_daredeska писал(а): ↑15.06.2010 19:25В общем случае — нет. Ибо через тот же ssh пользователь может запускать вообще всё, что угодно, а не только шелл, в том числе и такие программы, которые не умеют исполнять скрипты (например, ssh user@host ls).
Хм.. а если отлавливать не bash, а именно ssh? Есть ли способ определить момент, когда пользователь приконнектится к хосту по ssh? Ну и естественно его логин..
newblog.kz - заработай на своих статьях :)
-
- Бывший модератор
- Сообщения: 7390
- Статус: думающий о вечном
- ОС: Debian, LMDE
Re: Как при входе любого пользователя запустить скрипт?
Вообще-то, dash не вместо, а помимо bash; и то совсем не обязательно. И он по умолчанию не бывает login shell. Впрочем, ни на login shell, ни на особенности конкретной оболочки, ни даже на наличие какой-либо оболочки здесь нельзя завязываться.
А разве login shell и ssh возможности входа ограничиваются? (;
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
-
- Сообщения: 311
- ОС: Debian
Re: Как при входе любого пользователя запустить скрипт?
Хотя бы это для начала предусмотреть 

newblog.kz - заработай на своих статьях :)
-
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: Как при входе любого пользователя запустить скрипт?
watashiwa_darede... писал(а): ↑15.06.2010 19:25Ибо через тот же ssh пользователь может запускать вообще всё, что угодно, а не только шелл, в том числе и такие программы, которые не умеют исполнять скрипты
я уже цитировал - sshd в любом случае запустит sshrc, если он есть. а команды - уже потом.
Спасибо сказали:
-
- Бывший модератор
- Сообщения: 7390
- Статус: думающий о вечном
- ОС: Debian, LMDE
Re: Как при входе любого пользователя запустить скрипт?
Не совсем понятно, зачем «начинать» с двух случаев, явно не исчерпывающих возможности входа в систему, если уже было предложено универсальное решение.
Тем более, что и эти отдельные случаи трудно обработать так, чтобы эту обработку нельзя было обойти.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
-
- Бывший модератор
- Сообщения: 7390
- Статус: думающий о вечном
- ОС: Debian, LMDE
Re: Как при входе любого пользователя запустить скрипт?
Не всё так просто.drBatty писал(а): ↑15.06.2010 20:02я уже цитировал - sshd в любом случае запустит sshrc, если он есть. а команды - уже потом.watashiwa_darede... писал(а): ↑15.06.2010 19:25Ибо через тот же ssh пользователь может запускать вообще всё, что угодно, а не только шелл, в том числе и такие программы, которые не умеют исполнять скрипты
(man sshd) писал(а):8. If ~/.ssh/rc exists, runs it; else if /etc/ssh/sshrc exists, runs it; otherwise runs xauth.
Другими словами, человеку достаточно создать .ssh/rc в домашнем каталоге, чтобы системный sshrc не запустился.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
-
- Модератор
- Сообщения: 4823
- Статус: фанат консоли (=
- ОС: GNU/Debian, RHEL
Re: Как при входе любого пользователя запустить скрипт?
а не проще логи ssh мониторить?
в debian'e по дефолту умолчанию ssh пишет в /var/log/auth.log .
в debian'e по дефолту умолчанию ssh пишет в /var/log/auth.log .
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
The more you believe you don't do mistakes, the more bugs are in your code.
Спасибо сказали:
-
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: Как при входе любого пользователя запустить скрипт?
а в чём проблема с pam-ом?
добавляете в нужные места что-то вроде:
session optional pam_exec.so seteuid <команда с аргументами>
(пример из man pam_exec).
логичнее всего добавлять в «сборный» файл (/etp/pam.d/common-session), а не в каждый по отдельности (sshd, su, sudo, login). вот только надо проконтролировать, что common-session в них подключается. если в каком-то не подключается (у меня, например, в /etc/pam.d/sudo), то просто эту строку в него добавьте.
и логи su и sudo тоже?
в разных дистрибутивах это будут совершенно разные файлы.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
- Модератор
- Сообщения: 4823
- Статус: фанат консоли (=
- ОС: GNU/Debian, RHEL
Re: Как при входе любого пользователя запустить скрипт?
зачем? в конце концов, как тот же fail2ban работат?
а я не просто так написал, что этот путь относится к дебиану.
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
The more you believe you don't do mistakes, the more bugs are in your code.
-
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: Как при входе любого пользователя запустить скрипт?
SLEDopit
топик-стартер ведь просил стандартных средств:
мне кажется, pam_exec — гораздо универсальнее будет, а следовательно, и проще.
топик-стартер ведь просил стандартных средств:
а исследование логов — штука весьма дистрибутивоспецифичная.
мне кажется, pam_exec — гораздо универсальнее будет, а следовательно, и проще.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
- Модератор
- Сообщения: 4823
- Статус: фанат консоли (=
- ОС: GNU/Debian, RHEL
Re: Как при входе любого пользователя запустить скрипт?
Ну тогда виноват, как-то я не обратил внимание на просьбу про станадртные средства (:
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
The more you believe you don't do mistakes, the more bugs are in your code.
-
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: Как при входе любого пользователя запустить скрипт?
да... но это уже будет второй раз. потому можно и стереть этот файл. хотя конечно через PAM проще и правильнее.
Спасибо сказали:
-
- Сообщения: 1354
Re: Как при входе любого пользователя запустить скрипт?
Тут надобно сделать оговорку про любой дистрибутив и PAM. Не в каждой Slackware есть PAM, но в каждой, поставленной только из дистрибутива, его нет по сю пору (13.1).
Не придирок ради, но пользы для.
-
- Бывший модератор
- Сообщения: 7390
- Статус: думающий о вечном
- ОС: Debian, LMDE
Re: Как при входе любого пользователя запустить скрипт?
Совсем не факт, что второй. Этот файл может уже существовать на момент обсуждаемой здесь настройки. И совсем не факт, что его можно удалять без согласования с пользователем — от ситуации зависит. Одним словом, я о том, что это решение далеко не универсальное.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж