2011-07-11 21:44:59 +0000 2011-07-11 21:44:59 +0000
30
30

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

Как просмотреть историю команд другого пользователя?

Я администратор на своей машине. Я вижу обычную историю, просматривая /home/user_name/.bash_history, но я не вижу команды этого user_name, когда они делали sudo.

Есть ли способ просмотреть все команды, выполняемые одним пользователем?

Ответы (6)

23
23
23
2011-07-11 21:51:46 +0000

В операционных системах на базе Debian, dotail /var/log/auth.log | grep usernameshould дать пользователю историю sudo. Я не верю, что есть способ получить унифицированную историю команд пользователя + обычные команды sudo. В операционных системах на базе RHEL вам нужно будет проверить /var/log/secure вместо /var/log/auth.log.

5
5
5
2015-11-04 21:51:20 +0000

Просто проверил следующее, и это сработало как очарование.

sudo vim /home/USER_YOU_WANT_TO_VIEW/.bash_history
2
2
2
2011-07-11 21:52:18 +0000

Если пользователь выдал команду как в sudo somecommand, то она появится в системном журнале.

Если пользователь создал оболочку, например, sudo -s, sudo su, sudo sh, и т.д., то команда may появится в истории корневого пользователя, то есть в /root/.bash_history или аналогичной.

1
1
1
2019-01-16 07:16:45 +0000

используйте следующие команды

sysdig -c spy_users

если sysdig не установлен , установите здесь

1
1
1
2016-01-03 19:43:19 +0000

# zless /var/log/auth* твой друг здесь. Он открывает даже файлы gzipped. Вы можете перепрыгнуть между файлами с :n вперед или :p назад.

В качестве альтернативы вы можете использовать, например, # journalctl -f -l SYSLOG_FACILITY=10. Подробнее об этом читайте в Arch Linux wiki .

-1
-1
-1
2018-09-30 16:38:21 +0000

Логика применима ко многим другим целям.
А как читать .sh_история каждого пользователя из /home/ файловой системы? Что, если их тысячи?

#!/bin/ksh
last |head -10|awk '{print $1}'|
 while IFS= read -r line
 do
su - "$line" -c 'tail .sh_history'
 done

Здесь - это скрипт.

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

6
10
5
37
4