Это - то, как я начал делать это также, но стал намного более сложным с ним. Пара вещей, которые будут касаться в:
Я использую что-то вроде этого:
RELEASE=/tmp/${RANDOM}$$
(
trap 'false' 1
trap "rm -f ${RELEASE}" 0
while ! [ -s ${RELEASE} ]; do sleep 3; done
# You can put code here if you want to do something
# once the grep succeeds.
) & wait_pid=$!
tail --pid=${wait_pid} -F /path/to/serverLog \
| sed "1,10d" \
| grep "server is up" > ${RELEASE}
Это работает путем содержания tail
открытый до ${RELEASE}
файл содержит данные.
Однажды grep
следует за ним:
${RELEASE}
который будет${wait_pid}
процесс кtail
Примечание: sed
может быть более сложным для фактического определения количества строк tail
произведет при запуске и удалении того числа. Но обычно, это 10.
Для всех пользователей или конкретного пользователя? Для отдельного пользователя, набор это в их .bashrc
файл; для всех пользователей проверьте pam_exec.
Если пользователи входят от sshd
, Вы захотите добавить следующую строку к /etc/pam.d/sshd
; другие файлы в зависимости от их источника:
session optional pam_exec.so seteuid /path/to/my/hook.sh
Для тестирования модуль включен как optional
, так, чтобы можно было все еще войти в систему, если это перестало работать. После того, как Вы удостоверились, что это работает, можно измениться optional
кому: required
. Затем вход в систему не будет возможен, если выполнение Вашего сценария рычага не будет успешно.
Примечание: Как всегда при изменении конфигурации входа в систему оставьте резервную оболочку открытой в фоновом режиме и протестируйте вход в систему от нового терминала.
существует иначе, который только влияет на пользователей, использующих ssh не локальные (который мог бы быть лучше в чрезвычайных ситуациях),
посмотрите отрывки из ssh страницы справочника ниже.
в этом случае пользователи могут обычно изменять сами файлы (немного как .bashrc)
~/.ssh/rc Commands in this file are executed by ssh when the user logs in, just before the user's shell (or command) is started. See the sshd(8) manual page for more information.
и это является глобальным и не модифицируемым обычным пользователем
/etc/sshrc Commands in this file are executed by ssh when the user logs in, just before the user's shell (or command) is started. See the sshd(8) manual page for more information.
session include pam_exec.so seteuid /path/to/script
в файл/etc/pam.d/system-remote-login
. Это корректно? – phunehehe 14.02.2011, 18:07system-remote-login
илиsshd
В зависимости от того, как входит пользователь. – Glen Solsberry 14.02.2011, 18:07auth optional pam_exec.so /path/to/my/hook.sh
в/etc/pam.d/common-auth
чтобы иметь PAM уведомляют Вас относительно ЛЮБЫХ событий аутентификации, которые происходят. Эта программа может также отправить Вам уведомления о нажатии: github.com/benjojo/PushAlotAuth – Nick Sweeting 29.01.2016, 23:10