Есть ли способ запустить скрипт / команду каждый раз, когда пользователь подключается с помощью ssh? Может ли он быть настроен глобально (т.е. запускать скрипт при любом входе пользователя)?
Я сталкивался с этим вопросом на Идентике, но ответа пока нет, и все равно хотел бы его узнать.
Для всех пользователей или конкретного пользователя? Для одного пользователя, установите его в своем .bashrcфайле; для всех пользователей, проверьте pam_exec .
Если пользователи приходят с sshd, вам нужно добавить следующую строку /etc/pam.d/sshd; другие файлы в зависимости от их источника:
В целях тестирования модуль включен как optional, так что вы все равно можете войти в систему, если он не работает. После того, как вы убедились, что это работает, вы можете изменить optionalна required. Тогда вход в систему будет невозможен, пока не будет успешно выполнен ваш скрипт-хук.
Примечание. Как всегда, когда вы меняете конфигурацию входа в систему, оставьте резервную копию оболочки в фоновом режиме и проверьте вход в систему с нового терминала.
Спасибо, это выглядит многообещающе. Можете ли вы уточнить немного больше? Я незнаком с этим.
phunehehe
Я полагаю, что я должен добавить session include pam_exec.so seteuid /path/to/scriptв файл /etc/pam.d/system-remote-login. Это верно?
phunehehe
Либо system-remote-loginили sshd, в зависимости от того, как пользователь входит.
Глен Солсберри
Потрясающие! Было бы здорово, если бы вы отредактировали ответ, включив в него информацию (вы знаете, для тех, кто ее ищет).
phunehehe
Обратите внимание на людей погуглить, вы также можете поместить эту строку auth optional pam_exec.so /path/to/my/hook.shв /etc/pam.d/common-authиметь РАМ уведомить вас о любых событиях аутентификации , которые происходят. Эта программа также может отправлять вам push-уведомления: github.com/benjojo/PushAlotAuth
Ник Свитинг
6
есть другой способ, который влияет только на пользователей, использующих 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
. Это верно?system-remote-login
илиsshd
, в зависимости от того, как пользователь входит.auth optional pam_exec.so /path/to/my/hook.sh
в/etc/pam.d/common-auth
иметь РАМ уведомить вас о любых событиях аутентификации , которые происходят. Эта программа также может отправлять вам push-уведомления: github.com/benjojo/PushAlotAuthесть другой способ, который влияет только на пользователей, использующих ssh, а не локальные (что может быть лучше в экстренных ситуациях)
смотрите фрагменты со страницы руководства ssh ниже.
в этом случае пользователи обычно могут сами изменять файлы (немного похоже на .bashrc)
и это глобально и не может быть изменено обычным пользователем
источник
/etc/ssh/sshd_config
(см.man sshd_config
подробности)