Вот в чем проблема: я сделал что-то на python, что работает практически с любой ОС, кроме Windows, и мне сказали, что люди, которые собираются оценить/использовать/попробовать это, имеют только Windows. Все доступные эмуляторы консоли вышли из строя, и у меня нет возможности переписать код или установить виртуальную машину на этих машинах.
Крайний срок — 8 часов, и вот что я имею в виду:
Возьмите мой сервер, создайте пользователя без пароля (например, с именем приложения), который сможет запускать только этот файл или псевдоним (который запускает файл), и запустите сервер SSH.
Затем им остается только подключиться по ssh к машине, и программа выскочит. Это текстовая консоль, так что с этим проблем быть не может.
Дело в том, что я не знаю, как сделать пользователя Linux НАСТОЛЬКО ограниченным. Как мне это сделать? Сервер — это просто тестовая машина, на ней не хранятся важные данные, и она обычно выключена или работает в автономном режиме, поэтому безопасность здесь не является большой проблемой. Я просто хочу, чтобы это работало. Кроме того, решение не будет постоянным, мне просто нужно, чтобы оно работало завтра в течение ~7 часов, а затем я смогу свободно с ним повозиться и заставить его работать должным образом.
Редактировать: Как бы я ни ценил длинные ответы, полные информации, я должен сказать, что сейчас 4:30 утра, я не спал почти два дня и я сейчас упаду в обморок над клавиатурой. Так что, пожалуйста, не добавляйте ничего, что не является необходимым, я просто не смогу это обработать.
решение1
Вы можете разрешить вход без пароля через ключи авторизации SSH, работающие ssh-keygen
, которые генерируют открытый и закрытый ключ. Пользователю нужен закрытый ключ для входа, а серверу нужен открытый ключ в ~/.ssh/authorized_keys
Вы можете получить больше информации о
Как настроить ssh, чтобы не запрашивать пароль
Что касается ограничений, вы можете создать изолированную среду для этого пользователя, что более безопасно, но требует гораздо больше работы, или вы можете наложить несколько ограничений на авторизованные ключи:
command="/your/script/path/filename",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pry YOUR-SSH-KEY
Вы можете получить больше информации наУправление SSH для скриптов и заданий cron
решение2
Я не смог создать пользователя без пароля, но я создал его с именем пользователя и паролем programname, а в файле /etc/ssh/sshd_config я добавил Match User testuser
и ForceCommand python /path/file.py
Таким образом, любой может войти в систему (данные для входа находятся на веб-сайте на этом сервере), увидеть программу, а затем автоматически выйти из системы, когда программа закроется.