Возможно ли, чтобы пользователь root в Linux имел представление в реальном времени (или близкое к реальному) представления команд оболочки, выполняемых другим пользователем, вошедшим в систему через терминал или SSH? Очевидно, они хранятся в .bash_history, но они сохраняются только тогда, когда пользователь выходит из системы, и также могут быть отключены.
Редактировать: в идеале то, что можно легко включать и выключать.
ttyrpld
выглядит неплохо. рекомендуется в этом вопросе. serverfault.com/questions/40011/…Ответы:
как пользователь root вы можете заменить их оболочку простым сценарием-оберткой, который регистрирует их команды перед передачей в настоящую оболочку Это будет работать только до их входа в систему.
источник
Используйте sniffy, если вы хотите войти в сеанс пользователя или
screen -x
если у вас есть сотрудничество.Имейте в виду, что слежка за вашими пользователями может регулироваться правилами или даже быть незаконной в зависимости от вашего местного законодательства.
источник
Сменить оболочку очень просто, обходить ее лучше, но нужно исправлять все оболочки. Наш любимый взломщик использует это, в качестве бонуса он не беспокоит себя отключением bash_history.
Snoopy является оберткой вокруг exec-функций и регистрирует любой исполняемый внешний бинарный файл (не встроенные в оболочку)
Предложение @David Шмитта попахивающий использует лучший метод, он вводит псевдотерминала.
ttysnoop использует тот же метод, но он не поддерживается. (У меня, вероятно, были проблемы с регистрацией соединений SSH, не помню)
Вы можете попробовать установить патч ssh для входа в сеанс, но этот патч устарел .
псевдопод и rooth могут использоваться для регистрации законных sudos. И shwatcr - это еще одна вещь для мониторинга входов в систему.
источник
ssh host /bin/sh -i
должен делать?Если вы сотрудничаете, вы можете использовать экран GNU между двумя пользователями - один из них установит сеанс экрана, а затем другой, используя соединение
screen -x
.Если вы хотите, чтобы root «шпионил» за другими пользователями без их ведома, лучшим и наиболее эффективным решением может быть программное / аппаратное обеспечение кейлоггера.
источник
Sysdig - мощный инструмент исследования системного уровня - это то, что вы хотите;)
пример:
sysdig -i spy_users
Категория: Безопасность
spy_users Показать интерактивную активность пользователя
перечисляет каждую команду, которую пользователи запускают в интерактивном режиме (например, из bash), и каждый каталог, который посещают пользователи
источник
Вы можете попробовать патч bash-BOFH. Обыщите патч.
источник
Я написал метод для записи всех команд / встроенных команд bash в текстовый файл или сервер 'syslog' без использования патча или специального исполняемого инструмента.
Его очень легко развернуть, так как это простой сценарий оболочки, который нужно вызывать один раз при инициализации 'bash'.
Смотрите метод здесь: http://blog.pointsoftware.ch/index.php/howto-bash-audit-command-logger
источник
Кажется, работает довольно хорошо, если вы не возражаете разобраться в куче разрывов строк.
источник
Snoopy предназначен для облегченной регистрации команд.
Если вы хотите в реальном времени просматривать команды, выполняемые в вашей системе, это может быть именно так. Предупреждение: snoopy не является правильным решением аудита и может легко обойтись.
Однако, если вы хотите видеть каждого персонажа, набранного в терминале, вам придется использовать другой инструмент.
Раскрытие информации: я текущий сопровождающий.
источник
попробуйте этот экспорт HISTTIMEFORMAT = "% T", запустите пару команд и "history" впоследствии ...
источник