Похоже, что вы хотите больше аудита в вашей системе в целом, однако, в отношении Bash и истории, вы можете включить отметку времени. Это в сочетании с последней командой и настраиваемым grep должно помочь определить, какой именно пользователь совершил преступление. э-э, команда.
- включить историю времени.
Со страницы GNU Bash:
HISTTIMEFORMAT
Если эта переменная установлена и не равна нулю, ее значение используется в качестве строки формата для strftime для печати отметки времени, связанной с каждой записью истории, отображаемой встроенной историей. Если эта переменная установлена, отметки времени записываются в файл истории, поэтому они могут быть сохранены в сеансах оболочки. При этом используется символ комментария истории, чтобы отличать метки времени от других строк истории.
Справочник по форматированию строки времени
- Используйте последнюю команду
Последний покажет время входа / выхода пользователя. Это сузит ваш поиск до нескольких пользователей.
- grep конкретные пользователи, соответствующие выше для конкретной команды.
что-то вроде:
grep "command" /home/{user_a,user_b}/.history
обратите внимание, что файл истории будет содержать дополнительные данные для метки времени, однако он все равно будет очень удобочитаемым в тексте.
- создать функцию Bash для выполнения всего вышеперечисленного
Создайте функцию histuser (), которая будет принимать один аргумент: имя команды, и выполните поиск выше, возвращая имя конкретного пользователя. Если вы хотите, чтобы это было сделано, напишите мне. Мне легко, но не дешево.
history
команда bash показывает все команды, запущенные всеми пользователями в системе? Показывает только историю текущего пользователя.