Первый раз здесь и отправляю только потому, что я не могу найти ответ на этот вопрос, или возможно ли это вообще.
Проблема, с которой я столкнулся, заключается в том, что я хочу создать сценарий, который будет запускаться сразу после того, как пользователь войдет на мой сервер, например, с помощью Putty.
Я не хочу, чтобы пользователь мог выполнять какие-либо обычные команды, которые вы могли бы запустить, вместо этого я хочу создать сценарий, который будет реагировать на определенный набор предварительно определенных команд, например,
> Привет
Привет, имя пользователя идет сюда
Возможно ли это сделать? Использование SSH не является обязательным условием, любое другое консольное соединение, например telnet, также подойдет, я просто хочу, чтобы пользователь мог подключаться к моему серверу и получать ответ от некоторых основных команд.
Спасибо за ваше время, надеюсь, я достаточно ясно объяснил.
Я думаю, то, что вы ищете, называется Принудительные команды:
http://oreilly.com/catalog/sshtdg/chapter/ch08.html#22858
Принудительные команды могут быть весьма полезными. Предположим, вы хотите предоставить своему помощнику доступ к своей учетной записи, но только для чтения вашей электронной почты. Вы можете связать принудительную команду с ключом SSH вашего помощника, чтобы запускать только вашу почтовую программу и ничего больше.
В SSH1 и OpenSSH принудительная команда может быть указана в authorized_keys с опцией «command» перед желаемым ключом. Например, чтобы запускать почтовую программу Pine всякий раз, когда ваш помощник подключается:
# SSH1, OpenSSH
command="/usr/local/bin/pine" ...secretary's public key...
В SSH2 принудительная команда появляется в строке, следующей сразу за желаемым ключом, с использованием ключевого слова Command. Предыдущий пример будет представлен:
# SSH2 only
Key secretary.pub
Command "/usr/local/bin/pine"
Я считаю, что это позволит им выполнить только одну команду. Если вам нужно разрешить им больше, вы можете использовать Authprogs
. Это Perl
сценарий, который имеет .conf
файл, в котором вы можете указать команды, которые разрешено запускать человеку.
Вы можете добиться такого поведения, изменив оболочку рассматриваемой учетной записи на сценарий, который вы хотите запустить. В этом случае пользователь не получает своего обычного приглашения, где вводить обычные команды, такие как ls
, cd
и т.д. вообще. Вместо этого ваш скрипт запускается при входе в систему, и у вас могут быть необходимые функции.
Чтобы изменить оболочку, вы можете использовать chsh
-команду или измените ее прямо на /etc/passwd
. Новая оболочка (ваш скрипт) также должна быть указана в /etc/shells
чтобы это работало.
Match user username
ForceCommand command_which_you_want_to_run
Это вы можете вставить sshd_config
файл вашего ssh
сервер. Итак, когда пользователь с именем username
подключиться к вашему серверу через ssh, command_which_you_want_to_run
будет казнить.
Вы можете настроить больше своих ssh server
. Следующая ссылка может помочь вам в этом.