Я хочу иметь пользователя в Debian 7.x со следующими ограничениями:
- Когда пользователь входит в систему, программа командной строки автоматически запускается в сеансе оболочки пользователя. Затем программа будет анализировать пользовательский ввод навсегда и будет выполнять команды, пока пользователь не введет конкретную команду выхода.
- Когда программа завершается, пользователь должен автоматически выйти из системы.
- CTRL+C должен либо ничего не делать, либо прервать работу программы и выйти из системы.
- Подводя итог, пользователь не должен иметь возможности взаимодействовать с системой каким-либо образом, кроме этой автоматически запускаемой программы. Это должно выполняться независимо от того, как запущен сеанс, будь то SSH или другие средства.
В качестве отправной точки я добавил следующие строки в конец нового пользователя .bashrc
(пользовательская оболочка bash):
exec /path/to/myprogram
logout
Как правило, это работает. Однако, если начало сеанса медленное, (не особенно быстрый) пользователь может нажать CTRL-C и получить счастливый запрос на терминале до myprogram
. Как я могу избежать этого?
Назначение пользователю ложной оболочки, такой как /usr/sbin/nologin
или /bin/false
, не будет работать, так как не позволит запустить программу.