Linux посмотреть history другого пользователя

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

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

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

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

6 ответов

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

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

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

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

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

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

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

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

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

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

Источник

Эффективное использование истории команд в Linux

Оригинал: How To Use History Command Effectively In Linux
Автор: Magesh Maruthamuthu
Дата публикации: 28 февраля 2018 года
Перевод: А. Кривошей
Дата перевода: октябрь 2018 г.

Большинство администраторов Linux-серверов проводят много времени в командной строке, поэтому история команд — важная вещь для них.

BASH (Bourne Again SHell) — это оболочка командной строки, которая используется по умолчанию в большинстве основных дистрибутивов Linux.

Что такое история команд

Команда history используется для отображения журнала команд Bash, которые вы набирали ранее. Этот журнал называется «историей», которая позволяет нам быстро увидеть, какие команды выполнялись ранее в системе. Когда вы закрываете сеанс терминала, BASH записывает все команды, которые вы выполнили, в файл

Читайте также:  Windows 10 отформатировать флешку fat

Когда вы одновременно запускаете два сеанса, команда history отображает историю текущего сеанса и не показывает историю другого сеанса.

Как читать историю команд

Запустите команду history без каких-либо параметров для просмотра команд, которые вы запускали ранее. Если у вас огромные журналы истории команд, вы не можете их нормально просмотреть. В этом случае вы должны использовать команды просмотра файлов, такие как less, more и т. д.

Как просмотреть последние n команд

По умолчанию команда history показывает последние 1000 выполненных нами команд. Если вы хотите dsdtcnb только n команд, введите число n после команды history. Например, чтобы отобразить последние 10 команд, введите:

Как повторно выполнить введенную ранее команду

С помощью клавиш стрелок вверх и вниз перейдите к нужной команде. Затем нажмите Enter, чтобы выполнить ее или клавиши со стрелками влево и вправо, чтобы отредактировать команду.

Повтор последней команды

Повторить последнюю команду, которую вы выполнили, введите !! — двойной восклицательный знак.

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

Повторите ранее выполненную команду, используя ее номер. Это позволит быстро запустить ранее выполненную команду, вместо ввода всей команды.

Поиск и выполнее ранее введенных команд

История команд предлагает множество вариантов поиска. Она позволяет нам выполнять поиск и выполнять ранее выполненные команды. Можно выполнить команду, которая соответствует строке в начале команды. Или выполнить команду, которая соответствует заданной строке

Чтобы выполнить эту операцию, я взял последние 30 команд в истории.

1) Предположим, вы хотите запустить команду, которая соответствует строке в начале команды. Используйте приведенный ниже формат. В нем будет запущена последняя команда, начинающаяся со строки doc.

В моем случае она выполнит команду запуска docker, которая находится в строке 756.

2) Если вы хотите запустить команду, которая соответствует заданной строке, используйте следующий формат команды:

В моем случае она выполнит команду docker ps, которая находится в строке 754.

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

Если вы хотите повторить последнюю команду с новой строкой, просто замените string1 на string2 (эквивалентно «. s/string1/string2/»).

Используйте следующий формат команды. В приведенном ниже примере сначала я запустил образ Fedora docker, а затем запустил образ Centos docker, заменив строку Fedora на CentOS.

Если вы хотите запустить какую-либо конкретную команду, которая была выполнена ранее, с новой строкой, используйте один из следующих форматов команды.

В моем случае строка 821 истории команд была fedora docker container. Чтобы запустить centos container, просто замените слово fedora на centos.

Вывод подходящих строк с помощью команды grep

Если вы запускали много команд помимо docker, можно очень легко отобразить список команд, соответствующих команде docker, используя команду grep.

Как в истории команд отобразить дату и время

По умолчанию команда history показывает только команды, выполняемые пользователями, и не печатает дату и время, но записывает время, когда вы запускали команду.

Если вы хотите добавить дату и время в выводе истории команд, просто перейдите по следующей ссылке.

Читайте также:  Windows 10 подключение точки доступа нарушено

Как использовать историю команд YUM для отката обновлений

Yum (Yellowdog Update Modified) — утилита для управления пакетами RPM в системах CentOS и Red Hat, история команд Yum позволяет администратору откатить систему в предыдущее состояние, но из-за некоторых ограничений откат работает не во всех ситуациях, то есть команда yum может просто ничего не делать, или она может удалить не те пакеты, которые вы ожидаете.

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

Используйте следующий формат команды, чтобы просмотреть историю команд других пользователей:

Как искать в истории Bash

Мы можем выполнить поиск ранее выполненной команды с использованием ключевого слова, нажав CTRL-r (этот поиск отображает самый последний найденный результат). Нажмите CTRL-r еще раз, чтобы увидеть следующий результат.

Источник

История команд Linux

В терминале Linux, кроме всего прочего, есть одна замечательная вещь. Это история команд Linux. Все команды, которые вы вводите во время работы сохраняются и вы можете найти и посмотреть их в любой момент. Также можете вернуться на несколько команд чтобы не набирать недавно выполненную команду заново.

В этой небольшой статье мы рассмотрим как пользоваться историей команд Linux, как ее настроить, а также рассмотрим полезные приемы, которые могут помочь вам в работе.

История команд Linux

Большинство задач, связанных с историей команд, мы будем выполнять либо с помощью команды history, либо с помощью оболочки. В истории хранится последняя 1000 команд, которые вы выполняли. Чтобы посмотреть всю историю для этого терминала просто запустите команду history без параметров:

Для дополнительных действий с историей вам могут понадобиться опции. Команда history linux имеет очень простой синтаксис:

$ history опции файл

В качестве файла можно указать файл истории. По умолчанию история для текущего пользователя хранится в файле

/.history, но вы можете задать, например, файл другого пользователя. А теперь рассмотрим опции:

  • -c — очистить историю;
  • -d — удалить определенную строку из истории;
  • -a — добавить новую команду в историю;
  • -n — скопировать команды из файла истории в текущий список;
  • -w — перезаписать содержимое одного файла истории в другой, заменяя повторяющиеся вхождения.

Наиболее полезной для нас из всего этого будет опция -c, которая позволяет очистить историю команд linux:

Так вы можете посмотреть только последние 10 команд:

А с помощью опции -d удалить ненужное, например, удалить команду под номером 1007:

Если вы хотите выполнить поиск по истории bash, можно использовать фильтр grep. Например, найдем все команды zypper:

history | grep zypper

На самом деле работать с историей еще более просто с помощью оболочки, возможно, вы уже используете многие ее функции, но о некоторых точно не знаете. Рассмотрим их:

Чтобы показать предыдущую команду просто нажмите стрелку вверх, так можно просмотреть список раньше выполненных команд.

Вы можете выполнить последнюю команду просто набрав «!!». Также можно выполнить одну из предыдущих команд указав ее номер «!-2»

Чтобы выполнить поиск по истории прямо во время ввода нажмите Ctrl+R и начните вводить начало команды.

Читайте также:  Образ mac os el capitan dmg

Если вы знаете, что нужная команда была последней, которая начиналась на определенные символы, например, l, то вы можете ее выполнить, дописав «!l»:

Если нужная команда последняя содержала определенное слово, например, tmp, то вы можете ее найти, использовав «!?tmp»:

Если вы не хотите, чтобы выполняемая команда сохранилась в истории просто поставьте перед ней пробел.

Таким образом, вы можете очень быстро отыскать нужную команду, если помните как она была написана. История команд bash хранит очень много команд и этого вполне достаточно для комфортной работы.

Настройка истории Linux

Linux — очень настраиваемая и гибкая система, поэтому настроить здесь можно все, в том числе и историю. По умолчанию выводится только номер команды, но вы можете выводить и ее дату. Для этого нужно экспортировать переменную HISTORYFORMAT вместе нужным форматом:

export HISTTIMEFORMAT=’%F %T ‘
$ history

Для форматирования можно использовать такие модификаторы:

  • %d – день;
  • %m – месяц;
  • %y – год;
  • %T – штамп времени;
  • %F — штамп даты.

Вы можете указать какие команды не стоит отображать, например, не будем выводить ls -l, pwd и date:

export HISTIGNORE=’ls -l:pwd:date:’

Также можно отключить вывод одинаковых команд:

Существует два флага, ignoredups и ignorespace. Второй указывает, что нужно игнорировать команды, начинающиеся с пробела. Если вы хотите установить оба значения, используйте флаг ignoreboth. Используйте переменную HISTSIZE, чтобы установить размер истории:

По умолчанию история сохраняется для каждого терминала отдельно. Но если вы хотите чтобы все ваши команды немедленно синхронизировались между всеми терминалами, то это очень просто настроить. Добавьте такую переменную:

export PROMPT_COMMAND=»$history -a; history -c; history -r;»

Для тестирования работы вы можете набирать эти команды прямо в терминале и сразу видеть результат, но для сохранения добавьте нужные строки в ваш

export PROMPT_COMMAND=»$history -a; history -c; history -r;»
$ export HISTCONTROL=ignoredups
$ export HISTTIMEFORMAT=’%F %T ‘

Готово, теперь осталось сохранить изменения и перезапустить ваши терминалы. Теперь ваша история будет выводить дату, игнорировать дубли и синхронизироваться между терминалами.

Выводы

В этой статье мы рассмотрели что такое история команд linux, как с ней работать, как применяется команда history linux и какие настройки можно использовать для более комфортной работы. Если у вас остались вопросы, спрашивайте в комментариях!

Источник

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

grep -e «$pattern» /home/*/.bash_history
(при условии, что все пользователи лежат в /home/*)

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

Sha644, ну немного докрутить. Я думаю, что это нужно не для того, чтоб команды из под рута смотреть. а прочих засранцев 🙂

при корректном выходе пользователя, его история сохраняется в его домашнем каталоге в . _history — например $HOME/.bash_history, $HOME/.ksh_history

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

можно одной командой сразу все (правда эта команда скорее всего бесполезна):

Источник

Оцените статью