Я не могу точно определить, будет ли упомянутая @flolo программа screen
делать то, что вам нужно, или нет. Возможно, но я не уверен, есть ли встроенное средство ведения журнала, которое, кажется, то, что вам нужно.
Вероятно, уже есть программа, которая делает то, что вам нужно. Я бы назначил sudosh
как возможность.
Если вам в конечном итоге понадобится написать собственный, вам, вероятно, потребуется использовать псевдо-tty (pty), и ваш контроллер приложения будет находиться между реальным терминальным подключением пользователя и устройством pty, где он может регистрировать все, что вам нужно, чтобы войти. Это не тривиально. Вы можете найти информацию об этом в книге Рочкинда " Advanced UNIX Programming, 2nd Edn " и, несомненно, в других подобных книгах (книга Стивенса "Расширенное программирование в среде UNIX" - вероятный кандидат, но я У меня нет копии, чтобы проверить это).