Как вы можете регистрировать каждую введенную команду

Как вы можете регистрировать каждую команду, которую кто-то ввел в оболочку?

Я прошу как основы защиты себя, если вы вошли в чужой сервер и что-то ломается, или если кто-то еще зарегистрирован на вашем сервере (либо намеренно, либо злонамеренно).

Даже новичок может обойти историю с unset history или создать новую оболочку, чтобы скрыть свои следы.

Мне интересно, как старшие администраторы linux отслеживают, какие команды были введены / внесены изменения в систему.

2 Solutions collect form web for “Как вы можете регистрировать каждую введенную команду”

Проверьте аудит . Если вы добавите

 -a exit,always -F arch=b64 -S execve -a exit,always -F arch=b32 -S execve 

на /etc/audit/audit.rules будут выполняться все выполненные команды. См .: http://whmcr.com/2011/10/14/auditd-logging-all-commands/

Затем отправьте его на сервер syslog.

Вы можете использовать команду script . Эта команда не включена в POSIX, но вам будет полезно хранить в файле все нажатия клавиш, а также сообщения вывода и ошибки. Вы можете позже просмотреть файл. Если вы выполняете важную работу и хотите сохранить журнал всех своих действий, вы должны вызвать эту команду сразу после входа в систему:

$ script
Сценарий запущен, файл – машинопись
$ _ Обратите внимание, что это другой shell-child оболочки входа

Запрос возвращается, и все ваши нажатия клавиш (в том числе те, которые используются для возврата), которые вы сейчас вводите, записываются в файл «машинопись». По завершении записи вы можете завершить сеанс, введя exit .
Примечание. Если вы введете имя файла сценария , сеанс будет сохранен в имени файла, а не в машинописном тексте , т. Е. Машинописный шрифт является значением по умолчанию, если не указано конкретное имя файла.

Теперь вы можете использовать имя файла cat или кошелек , в зависимости от того, что может случиться, для просмотра записанного сеанса.

Если вы хотите добавить новый сеанс к старому файлу, используйте: script -a Добавляет новый сеанс в машинописный текст, здесь применяется одно и то же правило по умолчанию

Это один из способов, которым администратор системы может отслеживать сеансы. Надеюсь, он был информативным и полезным. Ура!

  • Как я могу ввести команду для выполнения, когда текущая команда завершена?
  • Как добавить данные о подключении к сети или пользователям в записи истории?
  • Как извлечь «foo» из «foo-bar-baz» в bash?
  • Как задержать аргумент командной строки?
  • Команда «повторно применить» предыдущую команду?
  • В чем разница между «du -sh *» и «du -sh ./*»?
  • Удаление всех гласных, но первый из набора строк
  • Как скобки интерпретируются в командной строке?
  • Как я могу сказать echo / printf в Bash, чтобы проглотить коды эвакуации, основываясь на условии?
  • Выполнение команды внутри переменной не работает для sed
  • grep или egrep не соответствует результатам от mailq containg a?
  • Linux и Unix - лучшая ОС в мире.