Наша небольшая компания использует Ubuntu Server 11.10, к которому пару человек имеют доступ по SSH. Иногда используются и фактические терминалы. Как мы можем локально регистрировать все выполняемые команды Bash вместе с пользователем и отметкой времени?
Можно предположить, что никто не является гнусным и активно пытается избежать регистрации, но мы все же предпочли бы, чтобы пользователи не имели прямого доступа на запись к своим файлам журнала. Одновременные сеансы должны быть обработаны правильно.
PROMPT_COMMAND
оболочку не-bash.Система учета процессов может быть полезна в этом отношении, особенно пакет acct , который предоставляет команды lastcomm и ac.
Команды ac выводят статистику о времени подключения пользователей в часах. Это количество времени, которое пользователь был подключен к системе, либо удаленно через SSH или последовательный терминал, либо находясь на консоли.
Команда lastcomm отображает информацию о ранее выполненных командах. Самые последние записи приведены вверху списка. Также отображается общее количество процессорного времени, используемого каждым процессом.
Старый учебник, который может быть полезен, находится здесь:
http://www.linuxjournal.com/article/6144?page=0,1
Другие команды учета, такие как last и так далее, можно найти в этом уроке:
http://www.techrepublic.com/article/system-accounting-in-linux/1053377
источник
Вы могли бы использовать Snoopy .
Snoopy logger может удовлетворить ваши цели. Он не является неизбежным решением для ведения журнала, а скорее полезным инструментом для прилежных администраторов, которые предпочитают отслеживать свои собственные действия.
Раскрытие информации: я любопытный сопровождающий.
источник
Вы можете найти здесь скрипт для входа все Баш команды / встроенных модулей в текстовом файл или системный журнал сервер без использования патча или специальный исполняемого инструмента.
Очень прост в развертывании, так как это простой сценарий оболочки, который нужно вызывать один раз при инициализации bash .
Это бесплатно, и я надеюсь, что это соответствует вашим потребностям.
источник
Чтобы позаботиться о нескольких сеансах, не перезаписывая файл истории, вы должны будете поместить «shopt -s histappend» в файл запуска Bash. Смотрите также этот вопрос по той же проблеме.
источник
Попробуйте это (решения выше не будут работать на 100% с Bash 4.3):
это делает регистрацию И предотвращает регистрацию меток времени, которые используются для файла истории bash. ловушка необходима, так как bash отправит сигналы «subjob» после многократного нажатия strg + c (протестировано с bash 4.3). это приведет к выходу из системы текущего пользователя (например, вошел в систему с помощью sudo)
источник
Вы также можете попробовать установить acct. Acct ведет подробный журнал аудита того, что делается в ваших системах Linux.
источник