История изменений
Исправление HighMan, (текущая версия) :
Тут напрашивается sftp chroot. Загугли эти два слова вместе.
Напрашивается. Да. Специфика задачи не позволяет.
Через ssh клиента все можно сделать, через перенаправление вывода.
Просто сначала нужно собрать архив, получить имя файла и передать его в следующей сессии, перенаправив вывод в файл.
Главное, что скрипт прекрасно получает аргументы командной строки, которые передаются ssh клиентом на сервер как… Как команда на выполнение.
После генерации архива нужно закрыть текущую сессию или создать новую, передав нужные параметры:
ssh testuser@myserver.com filename.tar.gz > filename.tar.gz
Строка выгрузки генерируется скриптом и передается юзверю. Тому достаточно его скопипастить в новую сессию.
Скрипт (shell) получает 2 аргумента:
$0 # "-c"
$1 # "filename.tar.gz"
Дальше, согласно моей задумке, скрипт-shell проверяет аргуметны и если filename.tar.gz лежит в директории генерации, например /tmp/filename.tar.gz, то просто catит его в stdout. Со стороны юзверя идет перенаправление в файл.
Разумеется, можно дополнительно нагородить с провркой аргументов и попробовать защитится от нежелательного слива, сделав например arhive=filename.tar.gz и дальше разбивать эту строку на ключ и значение, но это, в любом случае, лишь макияж.
Сложность возникает с виндузверями, которые используют PuTTY или еще какой «продвинутый» клиент, но это уже не моя головная боль.
Исходная версия HighMan, :
Тут напрашивается sftp chroot. Загугли эти два слова вместе.
Напрашивается. Да. Специфика задачи не позволяет.
Через ssh клиента все можно сделать, через перенаправление вывода.
Просто сначала нужно собрать архив, получить имя файла и передать его в следующей сессии, перенаправив вывод в файл.
Главное, что скрипт прекрасно получает аргументы командной строки, которые передаются ssh клиентом на сервер как… Как команда на выполнение.
После генерации архива нужно закрыть текущую сессию или создать новую, передав нужные параметры:
ssh testuser@myserver.com filename.tar.gz > filename.tar.gz
Строка выгрузки генерируется скриптом и передается юзверю. Тому достаточно его скопипастить в новую сессию.
Скрипт получает 2 аргумента:
$0 # "-c"
$1 # "filename.tar.gz"
Дальше, согласно моей задумке, скрипт-shell проверяет аргуметны и если filename.tar.gz лежит в директории генерации, например /tmp/filename.tar.gz, то просто catит его в stdout. Со стороны юзверя идет перенаправление в файл.
Разумеется, можно дополнительно нагородить с провркой аргументов и попробовать защитится от нежелательного слива, сделав например arhive=filename.tar.gz и дальше разбивать эту строку на ключ и значение, но это, в любом случае, лишь макияж.
Сложность возникает с виндузверями, которые используют PuTTY или еще какой «продвинутый» клиент, но это уже не моя головная боль.