Предположим, что это не крошечный chroot или контейнер только с тем, что им нужно, а многопользовательская операционная система общего назначения.
При достаточной автоматизации вход на хост может не потребоваться. Возможно, предоставить через какую-нибудь систему самообслуживания эти ограниченные возможности, что делает автоматика.
Чтобы позволить им делать это на хосте, попробуйте то, что я бы назвал неограниченным текстовым меню. Какой сценарий вам может понадобиться написать.
Чтобы строго запретить человеку заниматься другими делами, требуется несколько приемов.
- Войдите в систему как непривилегированный, в идеале уникальный для них пользователь.Расширяйте доступ к привилегированным вещам с помощью таких инструментов, как doas или sudo.
- Mandate это меню работает с OpenSSH
ForceCommand
блоки.
- Также запустите его из профилей оболочки. exec, поэтому он заменяет процесс оболочки, а когда меню закрывается, то же самое происходит и с их сеансом.
- Перехват сигналов в сценарии меню.
- Остерегайтесь программ, которые могут запускать произвольные команды. Обстрел тривиальный в vim команда
:ракушка
- Напишите и используйте в качестве сценариев-оболочек пунктов меню для более сложных операций или большего контроля над выводом.
Выберите язык сценариев для написания меню. Рассмотрите возможность использования существующей библиотеки текстового меню. Цикл ввода сам по себе не сложен, но сделать его надежным, легко модифицируемым и с хорошим UX — это то, что вам действительно нужно в продакшене.