Мы работаем на серверах CentOS, доступных через SSH более ста сотрудникам, каждый из которых имеет свой собственный логин. Выполнение обычной history
команды bash показывает все команды, выполняемые всеми сотрудниками, однако не указывает, каким сотрудником выполнялась команда. Возможно ли, чтобы история показывала не только команду bash, которая была запущена, но также и каким пользователем SSH она была запущена?
command-line
bash
ssh
command-history
SSH_Noob
источник
источник
history
команда bash показывает все команды, запущенные всеми пользователями в системе? Показывает только историю текущего пользователя.sudo
учитывает это, а также реализует аудит, если вы этого хотите.Ответы:
Похоже, что вы хотите больше аудита в вашей системе в целом, однако, в отношении Bash и истории, вы можете включить отметку времени. Это в сочетании с последней командой и настраиваемым grep должно помочь определить, какой именно пользователь совершил преступление. э-э, команда.
Со страницы GNU Bash:
HISTTIMEFORMAT
Если эта переменная установлена и не равна нулю, ее значение используется в качестве строки формата для strftime для печати отметки времени, связанной с каждой записью истории, отображаемой встроенной историей. Если эта переменная установлена, отметки времени записываются в файл истории, поэтому они могут быть сохранены в сеансах оболочки. При этом используется символ комментария истории, чтобы отличать метки времени от других строк истории.
Справочник по форматированию строки времени
Последний покажет время входа / выхода пользователя. Это сузит ваш поиск до нескольких пользователей.
что-то вроде:
обратите внимание, что файл истории будет содержать дополнительные данные для метки времени, однако он все равно будет очень удобочитаемым в тексте.
Создайте функцию histuser (), которая будет принимать один аргумент: имя команды, и выполните поиск выше, возвращая имя конкретного пользователя. Если вы хотите, чтобы это было сделано, напишите мне. Мне легко, но не дешево.
источник
Вы можете попробовать это
источник
Согласно этому ответу на сайте «Unix & Linux Stack Exchange», вы можете использовать
getent
для прокрутки домашний каталог каждого пользователя и поиска команды / шаблона в этих выходных данных:Или вы можете использовать
grep
для поиска по всей истории Bash, как это:источник