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

30

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

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

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

Шон Нгуен
источник
1
Украдите его пароль :) или с помощью социальной инженерии. Если вы не root, а ваша учетная запись настроена таким образом, что вы не можете пойти / прочитать домашние / файлы других пользователей, вы в значительной степени ограничены.
кольцо на предъявителя
8
«Я администратор на моей машине».

Ответы:

23

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

В операционных системах на основе RHEL вам нужно будет проверить /var/log/secureвместо /var/log/auth.log.

Крейн
источник
Любая подсказка, что это будет на системе Centos? Мои машины Centos 7 не имеют/var/log/auth.log
Митч
3
Попробуй /var/log/secureвместо этого.
Керин
Работает отлично! Просто вставьте запрос на изменение вашего ответа
Митч
4

Только что проверил следующее, и это сработало как шарм.

sudo vim /home/USER_YOU_WANT_TO_VIEW/.bash_history
Тайсон
источник
1
Он / она уже знает об этой команде. Из исходного вопроса: «Я могу видеть нормальную историю, просматривая /home/user_name/.bash_history, но не вижу команд с этим« user_name », когда они делали sudo».
Майкл Томпсон
2

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

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

bdonlan
источник
1
Где находится системный журнал?
Гаррет
1

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

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

AdamKalisz
источник
1

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

sysdig -c spy_users

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

sachin_ur
источник
0

Может быть, эта ссылка имеет значение для вас: http://www.sudo.ws/pipermail/sudo-users/2000-March/000052.html

Но вы должны иметь в виду, что отсутствие следов в bash_history - это просто вопрос запуска команды с пробелом etcpp. История - это помощник, а не инструмент ведения журнала.

Привет из Германии, Даниэль Лешковски


источник
-1

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

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

Вот сценарий.

Игорь М.В.
источник