Linux last logins by user

How to Check Linux Login History

You may want to know who logged on your system and from where. You should also see bad login attempts on your system. Learn how to see login history in Linux.

If you have a Linux server, there is a possibility that you have several users accessing the system. You may want to know who is logged on your system, when a particular user logged to the Linux system. You may also want to know from which IP address your system was accessed.

Even if you don’t have multiple users, someone probably have tried to access your Linux server. Trust me, this may sound weird but it’s a common thing these days for bots to try and access your Linux servers. Don’t believe me? Just check the bad login attempts on your server to see if someone tried to login to your system.

Let me show you how to view the Linux login history so that you are aware of who is accessing your system and from where.

Viewing Linux login history

Linux is very good at keeping logs of everything that goes on your system. Quite naturally, it also stores logs about login and login attempts. The login information is stored in three places:

  • /var/log/wtmp – Logs of last login sessions
  • /var/run/utmp – Logs of the current login sessions
  • /var/log/btmp – Logs of the bad login attempts

Let’s see these things in a bit detail.

1. View history of all logged users

To view the history of all the successful login on your system, simply use the command last.

The output should look like this. As you can see, it lists the user, the IP address from where the user accessed the system, date and time frame of the login. pts/0 means the server was accessed via SSH.

abhi pts/0 202.91.87.115 Wed Mar 13 13:31 still logged in root pts/0 202.91.87.115 Wed Mar 13 13:30 - 13:31 (00:00) servesha pts/0 125.20.97.117 Tue Mar 12 12:07 - 14:25 (02:17) servesha pts/0 209.20.189.152 Tue Mar 5 12:32 - 12:38 (00:06) root pts/0 202.91.87.114 Mon Mar 4 13:35 - 13:47 (00:11) wtmp begins Mon Mar 4 13:35:54 2019

The last line of the output tells you the when was the wtmp log file was created. This is important because if the wtmp file was deleted recently, last command won’t be able to show history of the logins prior to that date.

You may have a huge history of login sessions so it’s better to pipe the output through less command.

Читайте также:  Сброс настроек сети linux

2. View login history of a certain user

If you just want to see the login history of a particular user, you can specify the user name with last command.

You’ll see the login information of only the selected user:

last servesha servesha pts/0 125.20.97.117 Tue Mar 12 12:07 - 14:25 (02:17) servesha pts/0 209.20.189.152 Tue Mar 5 12:32 - 12:38 (00:06) wtmp begins Mon Mar 4 13:35:54 2019

3. Display IP addresses in login history instead of hostname

You couldn’t see it in the previous output but by default, last command shows the hostname instead of the IP address of the user. If you are on a sub-network, you’ll probably see only the hostnames.

You can force to display the IP addresses of the previously logged users with the -i option.

4. Display only last N logins

If your system has a good uptime, perhaps your login history would be huge. As I mentioned earlier, you can use the less command or other file viewing commands like head or tail.

Last command gives you the option to display only certain number of login history.

Just replace N with the number you want. You can also combine it with the username.

5. View all the bad login attempts on your Linux server

Now comes the important part: checking the bad login attempts on your server.

You can do that in two ways. You can either use the last command with the btmp log file:

or you can use the lastb command:

Both of these commands will yield the same result. The lastb is actually a link to the last command with the specified file.

root ssh:notty 218.92.0.158 Wed Mar 13 14:34 - 14:34 (00:00) sindesi ssh:notty 59.164.69.10 Wed Mar 13 14:34 - 14:34 (00:00) root ssh:notty 218.92.0.158 Wed Mar 13 14:34 - 14:34 (00:00) sindesi ssh:notty 59.164.69.10 Wed Mar 13 14:34 - 14:34 (00:00) root ssh:notty 218.92.0.158 Wed Mar 13 14:34 - 14:34 (00:00)

Bad logins could be an incorrect password entered by a legitimate user. It could also be a bot trying to brute force your password.

You have to analyze here and see if you recognize the IPs in the log. If there has been too many login attempts from a certain IP with user root, probably someone is trying to attack your system by bruteforcing.

You should deploy Fail2Ban to protect your server in such cases. Fail2Ban will ban such IPs from your server and thus giving your server an extra layer of protection.

I hope this tutorial teach you to view login history in Linux and now you can use this knowledge to better manage and protect your Linux system.

If you liked this article, please share it on social media and subscribe to our newsletter for more Linux related tutorials.

Источник

Команда last в Linux

Иногда при администрировании сервера под управлением Linux нужно посмотреть историю входов в систему и выходов для пользователей. Это удобно делать с помощью команды last. Хотя она пригодится и в других ситуациях.

В данной статье мы подробно расскажем, как работает last в Linux, какой у нее синтаксис и доступные опции. А затем перейдем к конкретным примерам использования и рассмотрим несколько сценариев.

Читайте также:  Посмотреть открытые порты linux команда

Синтаксис и опции last

Данная утилита по умолчанию берет данные из файла /var/log/wtmp и выводит полный список пользователей, вошедших в систему и вышедших. Рассмотрим ее синтаксис. В терминале нужно задать опции, имя одного или нескольких пользователей и tty:

$ last опции имя_пользователя название_tty

Вместо last можно использовать lastb. В таком случае по умолчанию будет использоваться файл /var/log/btmp, в котором сохранены все неудачные попытки входа. Теперь пройдемся по доступным опциям:

  • -a, —hostlast – выводить информацию об имени хоста (hostname) в последнем столбце. Изначально она отображается в третьем столбце.
  • -d, —dns – выводить IP-адрес пользователя в случае удаленного подключения. Удобно использовать вместе с предыдущей опцией.
  • -f, —file – выбрать свой файл для загрузки данных вместо используемого по умолчанию /var/log/wtmp. Опцию можно использовать несколько раз, выбрав два и более файла.
  • -F, —fulltimes – выводить полные дату и время входов и выходов из системы.
  • -i, —ip – выводить IP-адрес пользователя при удаленном подключении вместо имени хоста. Это несколько похоже на упомянутую ранее опцию —dns.
  • -число, -n,—limit – указать, сколько строк информации будет выведено при выполнении команды.
  • -p, —present – выводить информацию о сессиях в конкретное время.
  • -R, —nohostname – не отображать графу с именем хоста.
  • -s, —since – выводить информацию начиная с указанного момента времени.
  • -t, —until – выводить информацию до указанного времени.
  • —time-format – выбрать один из 4 доступных способов отображения времени: notime – вообще не выводить информацию, short – стандартный вариант, использующийся по умолчанию, full – полная информация, как в случае с опцией —fultimes, iso – использовать формат ISO-8601, включающий в себя часовой пояс.
  • -w, —fullname – выводить полные имена пользователей и доменов.
  • -x, —system – отображать записи о выключении системы и изменении уровня выполнения (run level).

Детальную информацию о команде last, синтаксис и все опции можно получить в терминале:

А теперь перейдем к примерам ее использования.

Примеры использования last

Сначала рассмотрим способ просмотра всей истории входов и выходов, объяснив детально каждое поле. Затем перейдем к изучению данных для конкретного пользователя. Это основные сценарии, которые могут пригодиться.

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

1. Просмотр всей истории

Главная задача – получить полную информацию для всех пользователей. Для этих целей команде last нужно передать опции -F, -w и -x:

w8GAPuKwVyzxgAAAABJRU5ErkJggg==

Остановимся на каждом столбце более подробно:

  • Сначала идет имя пользователя. Обратите внимание, что reboot – это отдельный пользователь, появляющийся во время перезагрузки, shutdown – при выключении, runlevel – при изменении уровня выполнения.
  • Информация о tty сессии.
  • Имя хоста.
  • Время входа.
  • Время выхода.
  • Продолжительность сессии.

Обратите внимание, что в последней строке wtmp begins указано, с какого момента существует файл /var/log/btmp.

uIcRkgAAAABJRU5ErkJggg==

Если вам нужно получить подробную информацию об удаленных подключениях, то к команде добавится опция -d:

В результате в отдельной графе будет записан IP-адрес подключения.

2. История определённого пользователя

Когда компьютером пользуется сразу же несколько пользователей, информацию можно получить только по одному из них. Для этого утилите last нужно указать его имя. Рассмотрим все на примере пользователя root-user:

Если команда last выводит слишком большое количество информации, неудобное для изучения, то можно сократить количество строк. За это отвечает опция -n. Вот как будет выглядеть команда с ограничением на 4 строки:

Читайте также:  How to edit file in terminal linux

AwHwhptb7xZsAAAAAElFTkSuQmCC

Существует еще несколько вариантов ввода опции:

3. История за определённый день

С помощью опции -p добиться желаемого результата не выйдет, ведь она отображает информацию о сессиях только в конкретное время. Поэтому мы будем использовать опции -s и -t. Они задают время начала и конца сбора информации. В качестве примера возьмем 17 февраля 2022 года. Эта дата задается для -s. А для -t указывается следующий день:

last -s 2022-02-17 -t 2022-02-18

25Rwc4EKwkUAAAAASUVORK5CYII=

Обратите внимание на формат ввода даты. Если речь идет о вчерашнем дне, то вместо первого числа можно записать yesterday, а следующий день – today:

WpeOZsfR4GOHZ3+4bdZ6+fn8gclT+f2Ukupr7Om65AAAAAElFTkSuQmCC

Для вывода информации за сегодняшний день для -s следует задать значение today, а -t просто не использовать:

sSJrrseHo7W0f8AcmOkFYwwLyAAAAAASUVORK5CYII=

4. История за определённый период

Как и в предыдущем случае, будут использоваться опции -s и -t. Но на этот раз можно указать любой временной промежуток. Форматы ввода данных те же самые, что и до этого. В качестве примера возьмем время с 2022-02-18 по 2022-02-23:

last -s 2022-02-18 -t 2022-02-24

W0f8HscwcD+CseUEAAAAASUVORK5CYII=

Для -t мы указываем 24 число, потому что отчет данных берется с самого начала суток (00:00 на часах). Также вы можете указать точное время для начальной и конечной точки. В таком случае дату и время нужно вводить в несколько ином формате:

Вот пример команды в случае с временным промежутком от 17 февраля 04:57 до 19 февраля 08:15:

last -s ‘2022-02-17 04:57’ -t ‘2022-02-19 08:15’

4XGfWOJ+oCS+MAAAAASUVORK5CYII=

5. Вывод хоста и имени пользователя (Заголовок 3) (-i/-R)

По умолчанию имя пользователя отображается в первом столбце, а имя хоста – в третьем.

f95mcyD1EiJ9AAAAAElFTkSuQmCC

Но при этом они могут быть записаны не в полном виде. Чтобы это исправить, используется опция -w:

AqSSyeW0gs2uAAAAAElFTkSuQmCC

При просмотре списка сеансов удаленного доступа будет полезной опция -i. Она заменяет имя хоста на IP-адрес пользователя:

Ну и еще упомянем опцию -R. При ее вводе команда last не станет выводить столбец с именем хоста:

6. Вывод полного времени

Изначально время начала и конца сеанса записывается в кратком формате. Получить подробную информацию можно через опцию -F:

+mfm+S++Vx+9LIN5jMitjYBrJ4Z+2hpew2GTLfVe73j4AsigfBkjiLdkrr5FzceAlH87waXql32e2H2lz+P0pPulQGXL7RAAAAAElFTkSuQmCC

Еще хотелось бы упомянуть опцию —time-format. С ее помощью можно полностью отключить показ даты и времени, за исключением продолжительности самой сессии:

No9ifOLF118PD0Tr6v5bdIeTYozQLAAAAAElFTkSuQmCC

А при просмотре сессий удаленного подключения полезным окажется следующий формат вывода:

wsHgCQaVc9o+AAAAABJRU5ErkJggg==

В нем время и дата записываются по стандарту ISO-8601. При этом отдельно выводится часовой пояс подключившегося пользователя.

8. История перезагрузок

Все перезагрузки в Linux отмечаются как действие пользователя reboot в команде last. А для получения подробных сведений обо всех завершениях сеансов подойдет опция -x:

f8BPLOGbEFNjBEAAAAASUVORK5CYII=

Мы уже описывали в начале статьи, за что отвечают пользователи shutdown и runlevel. Так что останавливаться на них не будем.

9. История неудачных входов

История неудачных входов хранится в файле /var/log/btmp. Для быстрого получения доступа к ней используется команда lastb. Но выполнять ее следует с правами супер-пользователя:

3IfX4TeEoZHONxTJxml7D9sgGAkxcX0J53OP0Ip6qx8m+tXQLFw0LsHwAAAABJRU5ErkJggg==

В остальном у нее такие же опции и синтаксис.

Выводы

В рамках данной статьи мы разобрались с особенностями и нюансами использования команды last Linux. С ее помощью получится посмотреть историю входов из системы и выходов для всех пользователей. В том числе и при удаленном подключении к ПК.

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Источник

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