Как посмотреть историю команд всех пользователей в Linux?

как посмотреть историю введенных команд всех пользователей в системе, не проваливаясь под каждого юзера?
  • Вопрос задан
  • 15589 просмотров
Пригласить эксперта
Ответы на вопрос 3
grep -e "$pattern" /home/*/.bash_history
(при условии, что все пользователи лежат в /home/*)

ну или чтоб знать кто точно

getent passwd | cut -d : -f 6 | sed 's:$:/.bash_history:' | xargs -d '\n' grep -s -H -e "$pattern"
Ответ написан
saboteur_kiev
@saboteur_kiev Куратор тега Linux
software engineer
при корректном выходе пользователя, его история сохраняется в его домашнем каталоге в .<ШЕЛЛ>_history - например $HOME/.bash_history, $HOME/.ksh_history

Файл доступен только пользователю, или суперпользователю.
Следовательно запускайте cat от суперпользователя
sudo cat /home/ЮЗЕР/.bash_history

можно одной командой сразу все (правда эта команда скорее всего бесполезна):
for d in $(cut -d: -f 6 </etc/passwd); do sudo cat $d/.*_history; done

или так еще проще
cut -d: -f 6 </etc/passwd | xargs -ID sudo grep -Hs "" D/.bash_history
Ответ написан
Комментировать
@Sat0shi
ИБ
А если шелл не bash? Надо учитывать все *sh
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы