Як я можу перевірити історію команд користувача в Unix?


13

Я знаю, що команда "історія" дає мені список команд, які я вписав у термінал Unix.

Як я бачу історію команд для всіх користувачів, які зараз увійшли в систему?


Не пов’язані з програмуванням. Я пропоную вам запитати на superuser.com .

Немає стандартного інструменту для отримання інформації, тому я думаю, що це програмування (принаймні в сенсі "сценаріїв").
Ян

Відповіді:


11

Ви отримуєте список зареєстрованих в даний час користувачів /var/run/utmp(див. man 5 utmp). Історія зберігається в ~ / .history або для користувача bash в ~ / .bash_history. Інші оболонки можуть використовувати інші файли історії, тому отримати не всю інформацію справді просто.

Крім того, якщо користувач реєструється кілька разів, файл .bash_history не завжди є надійним.

Для читання utmpфайлу є "frontend", який називається who, так що ви також можете написати скрипт оболонки, щоб перебирати користувачів, які в даний час увійшли в систему.


2
Поточна історія зберігається в пам’яті. Файл історії показує лише те, що було написано за допомогою history -aабо подібного або коли користувач закриває оболонку.
Призупинено до подальшого повідомлення.

2
Зверніть увагу, що назви файлів, наведені у цій відповіді, є лише типовими. Кожен користувач міг встановити своє власне місцезнаходження (див. Відповідь Джоя). Якщо користувач використовує різні оболонки, він, можливо, може зберігати свою історію в різних місцях, які не є типовими (наприклад, ~ / mybashhist, ~ / histories / ksh або somesuch). Також майте на увазі, що вигляд таких даних користувачів може мати юридичні наслідки.
DevSolar

3
echo $HISTFILE

Потім перегляньте цей файл.


1
Це працює лише в тому випадку, якщо ви раніше знаходили середовище цього користувача (як він, можливо, встановив HISTFILEщось інше).
DevSolar
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.