Здравствуйте, коллеги! Разумеется, подсунуть пользователю скрипт, который будет его «шелом» - ни каких проблем:
cat /etc/passwd/grep testuser
testuser:x:502:502::/home/testuser:/usr/bin/testshell.sh
cat /usr/bin/testshell.sh
#!/bin/bash
echo "Hello testuser!"
read
Пользователь заходит под учетной записью testuser и получает трогательное приветствие и закрывает сессию после нажатия любой клавиши. Здорово!
Разумеется, можно насытить это testshell.sh разной информацией, но нужно чуть другое.
Нужно что бы скрипт собрал кучку разных файлов, сложил в определенную папку, например /tmp/test, «заTARил» и… Каким-то образом отдал юзверю.
Собрать, заархивировать - ерунда.
Сложности с отдачей файла.
На сервере нет и не должно быть ни чего лишнего. Т.е. всяких http, ftp, smb и прочих. Только ssh!
У пользователя testuser не должно быть возможности выйти в любой shell и, вообще, делать что либо, не предусмотренное скриптом testshell.sh. Но ему нужно как-то отдать подготовленный архив.
Дополнительная сложность в том, что не известно с какой ОС будет входить testuser. Может быть винда. Даже Windows 7. И пользователю доставлять дополнительное ПО нельзя.
Следовательно: с сервера кинуть по scp не выйдет. У юзверя, попросту, нет ssh сервера.
Расшара пользовательской папки так же не вариант. Нужно всю эту хрень реализовать внутри ssh и под конкретной учетной записью: testuser.
Я чуток поковырял и узнал, что testshell.sh может получить параметры запуска:
ssh testuser@myserver.com bla-bla-bla bla
Скрипт получает bla-bla-bla и даже bla.
Можно как-то подменить им шел для scp?
Что бы юзверь обратился например:
scp testuser@myserver.com:/etc/shadow .
И мой скрипт, как-то позволил ему скачать ему строго пределенный файл?
Ведь, мой скрипт может наплевать на весь путь, указанный в scp и начать отдавать ему лишь то, что подготовлено для testuser