При любом входе в систему / подключении ssh (кто-либо входит в систему через ssh), есть ли способ выполнить скрипт? Используя сервер OpenSSH.
Сценарий не должен быть изменен кем-либо из пользователей, конечно же, поэтому это должен быть общесистемный сценарий.
Спасибо!
Ты уже иметь сценарий, который выполняется каждый раз, когда кто-то входит в систему: /etc/profile
Вы можете изменить этот сценарий для выполнения той задачи, которую вы задумали, или заставить его напрямую вызывать ваш сценарий. На производных Debian вы можете просто отбросить свой собственный скрипт (оканчивающийся на .sh
) в /etc/profile.d
и он будет вызываться автоматически.
НОТА: Все, что я только что сказал, применимо только к производным оболочкам Bourne, например, по умолчанию /bin/sh
, ash, bash, ksh и т. д. Большинство пользователей придерживаются bash, поэтому приведенные выше указания, вероятно, все, что вам нужно. Другие семейства оболочек используют другие сценарии запуска. Tcsh, например, выполнит /etc/csh.cshrc
при входе в систему.
Видеть ForceCommand
в sshd_config(5)
:
Forces the execution of the command specified by ForceCommand, ignoring any command supplied by the client and ~/.ssh/rc if present. The command is invoked by using the user's login shell with the -c option. This applies to shell, command, or subsystem execution. It is most useful inside a Match block. The command originally supplied by the client is available in the SSH_ORIGINAL_COMMAND environment variable. Specifying a command of ``internal-sftp'' will force the use of an in-process sftp server that requires no support files when used with ChrootDirectory.
Если вы хотите сделать это ненавязчиво для пользователя, обратите внимание на замену syslog (например, syslog-ng). Вы можете запускать команду для сообщений журнала, отправленных в syslog сервером SSH, когда кто-то входит в систему.
Этот подход немного грубоват и зависит от правильной работы системного журнала. YMMV, IMHO, SLATFATF
Вы можете изменить оболочку пользователя так, чтобы при входе в систему выполнялся пользовательский сценарий. Это может быть оболочка по умолчанию для любого пользователя, которому она нужна (я бы рекомендовал сохранить учетную запись администратора с помощью bash, чтобы исправить проблемы).