Назад | Перейти на главную страницу

Как выполнить общесистемный скрипт при любом входе в систему по ssh (с OpenSSH)?

При любом входе в систему / подключении 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, чтобы исправить проблемы).