Показать активных пользователей linux

Как просмотреть список пользователей и групп в Linux?

Одной из важнейших задач в системном администрировании является управление пользователями. Не менее важно также иметь чёткое представление и о самих пользователях. Точнее, об их учётных записях в системе. Администраторам приходится очень часто выяснять и проверять информацию о пользователях в разных ситуациях. О том, как это делается в системах Linux и будет рассмотрено в данной статье.

Просмотр пользователей

Учётные записи в системах Linux – это универсальные компоненты. Которые представляют собой как реальных пользователей, так и виртуальных. Последние предназначены для функционирования системных сервисов Linux, являющихся неотъемлемыми составляющими системы. Или же это могут быть служебные, дополнительно добавленные в систему сервисы, предназначенные для расширения её функционала.

Независимо от того, каким пользователям (реальным или виртуальным) принадлежат учётные записи, вся основная информация о них хранится в файле /etc/passwd. Каждая учётная запись в этом файле представлена одной строкой, разделённой на поля символами двоеточия. Например, просмотреть этот файл можно командой less:

$ less /etc/passwd root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh sys:x:3:3:sys:/dev:/bin/sh sync:x:4:65534:sync:/bin:/bin/sync . . . games:x:5:60:games:/usr/games:/bin/sh

Имя пользователя (учётной записи) содержится в первом поле. Поэтому, чтобы упростить восприятие вывода, когда нужно получить например, только список имён пользователей, можно использовать соответствующие инструменты, например команду cut (или аналогичные sed или awk):

$ cut -d : -f 1 /etc/passwd root daemon bin sys sync . . . games

Конечно, для того, чтобы различать принадлежность некоторых учётных записей к реальным или виртуальным пользователям, необходим некоторый опыт администрирования Linux или UNIX. Например, в приведённом выводе пользователь root – это суперпользователь. А пользователи daemon, bin, sys и sync – учётные записи, от имени которых работают системные сервисы.

Вообще, изначально по устоявшимся соглашениям, по-умолчанию в системах Linux принято придерживаться определённых правил для наименования учётных записей, обслуживающих системные или служебные процессы и/или сервисы. Так, например, для работы веб-сервера Apache обычно используется учётная запись www-data. Это очень важно для обеспечения и контроля безопасности системы. Таким образом легко разделять привилегии по функциональному признаку для пользователей. Такие же соглашения действуют и для наименования системных или служебных процессов. Тот же Apache обычно представляется процессами httpd или apache.

Просмотр пользовательских групп

Аналогично учётным записям, информация о всех группах пользователей хранится в одном файле /etc/group :

$ less /etc/group root:x:0: daemon:x:1: bin:x:2: sys:x:3: adm:x:4: tty:x:5: disk:x:6:

Первое, на что нужно обратить внимание, это то, что имена многих групп идентичны именам некоторых имеющихся в системе пользователей. И это не просто совпадение. Дело в том, что таким образом реализуется механизм частных пользовательских групп (UPG) в системе. Он заключается в том, что для пользователя создаётся одноимённая закрытая группа. Которая назначается этому пользователю как основная. Этот механизм позволяет использовать в системе общие каталоги (и вообще ресурсы) без вреда для безопасности. Для этого существует такой полезный инструмент в системе прав доступа как бит setgid. Смысл этого бита в том, что в каталоге, для которого он установлен, можно создавать файлы, принадлежащие тому же владельцу, что и сам каталог с битом setgid.

Читайте также:  Linux скорость файловой системы

Просмотр активных пользователей

Информацию о том, какие пользователи активны в данный момент времени в системе позволяют команды «w» и «who». Первая по-умолчанию выводит более подробные данные о пользователях, например:

$ w 11:45:24 up 6:34, 2 users, load average: 0.33, 0.10, 0.07 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 rrcs-72-43-115-1 19:15 38.00s 0.33s 0.33s -bash demoer pts/1 rrcs-72-43-115-1 19:37 0.00s 0.47s 0.00s w

В первой строке указаны время старта системы, продолжительность её работы, количество активных пользователей, а также данные о средней загруженности системы за прошедшие 1, 5 и 15 минут. Далее следует список активных пользователей и используемых ими командах/процессах. Более подробно о работе команды «w» можно узнать на страницах интерактивного руководства, используя команду man w.

Заключение

В заключение стоит еще раз отметить, насколько легко при помощи простых команд можно получить подробное представление о пользовательской среде системы. При этом составить картину о действиях самих пользователей в данный момент времени. А также определить принадлежность групп и учётных записей. Важно понимать, что без умения находить информацию о пользователях нереально полноценно и гибко ими управлять. Что является важнейшей частью системного администрирования.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Похожие записи:

Источник

Команда who Linux

Команда who – настоящая палочка-выручалочка, благодаря которой так легко раздобыть всю необходимую информацию о пользователях, когда-либо работающих за конкретным компьютером. Так как операционная система Linux является многопользовательской, она отслеживает сеансы всех юзеров сети (кто работал за ПК, время старта и окончания его сеанса и прочее). Большинство пользователей операционной системы Linux отзываются об этом инструменте положительно. Он прекрасно показывает себя на практике.

Синтаксис

Кто я

Рассмотрим синтаксис.

  • -a — читает файл /etc/utmp, включает все основные опции;
  • -b — показывает дату и время загрузки операционной системы;
  • -d — показывает зомби-процессы.
  • -u — выводит активных пользователей.
  • -s — выводит имя, терминальную сессию и время, данный параметр используется по умолчанию;
  • -T — информация о терминальной сессии;
  • -q — количество пользователей в системе в данный момент;
  • -r — показывает уровень процесса init.

Обычно для выполнения команды who берется информация файла: «/etc/utmp».

Альтернативные файлы: «/etc/wtmp» и «/etc/inittab».

Примеры

Если не использовать опции и аргументы, на экране появятся данные по умолчанию, включающие в себя информацию об учетных записях (тех, кто подключен к системе). Чтобы ознакомиться с данными о пользователе, который изъявил желание обратиться к терминалу прямо сейчас («спросить» у системы о самом себе), необходимо использовать команду «who am i».

Читайте также:  Running chrome on linux

who am

Для получения обширной информации о подключенных пользователей достаточно ввести команду в виде:

Полная информация

Каких-либо дополнительных указаний в этом случае не потребуется. Если использовать исключительно «who», данных будет сравнительно меньше. Детализировать этот запрос или нет – решать только вам. Смотрите по ситуации.

Время загрузки системы можно посмотреть по команде:

Впишите её в терминале и ознакомьтесь с результатами запроса.

Чтобы посмотреть «runinit» (текущий уровень запуска), впишите в команду соответствующую опцию. Это будет выглядеть так:

Опция -s не имеет особого смысла, поскольку она провоцирует вывод таких стандартных значений, как «Имя пользователя», «терминальная линия», «время начала/окончания сеанса». Эта информация доступна и без добавления каких-либо опций. Едем дальше.

С помощью аргумента -T можно узнать состояние терминальной сессии. На практике это выглядит следующим образом:

Параметр -T

Для чего нужна информация о состоянии терминальной сессии? От её состояния зависят некоторые нюансы в работе пользователя. Обратите внимание на название любой сессии, отображенной в окошке терминала. Если рядом с ним указан значок «+», значит, пользователь может получать сообщения от других терминалов. Если такой возможности нет, рядом с названием сессии будет указан значок «-».

При неисправности линии появится вопросительный знак.

При необходимости узнать, сколько пользователей подключено к системе, вводится:

Сколько в системе user

Чтобы посмотреть, кто из пользователей активен в данный момент времени, введите команду:

При добавлении опции -d отображаются зомби-процессы:

Важное примечание: при использовании опции -d нельзя увидеть поле EXIT в окне терминала. Оно появляется лишь при добавлении опции -а.

Заключение

Основная задача утилиты who заключается в получении информации о пользователях, подключенных к системе. Вторичная задача – сбор данных о терминальных сессиях, благодаря которым и происходит их подключение.

Благодаря выше предоставленным примерам команд вы тоже можете ощутить простоту отслеживания данных о user системы. Всего несколько нажатий клавиш – и ответы на вопросы найдены.

Источник

Команда who Linux

Название команды who Linux полностью отображает ее функциональность — она служит для получения информации о пользователях, которые подключены к системе, в том числе и об терминальных сессиях, через которые происходит подключение.

При выполнении команды используются данные из файла /etc/utmp, хотя можно прописать в терминале и другой файл (как правило, используют /etc/wtmp либо /etc/inittab).

Синтаксис who

Синтаксис этой команды достаточно прост и выглядит так:

who опции имя_файла аргументы

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

Также можно прописывать команду в виде who am i — тогда она будет идентифицировать конкретно того пользователя, который работает сейчас в терминале (аналогично опции -m).

Опции who

Используя различные опции, можно получать именно ту информацию, которая нужна здесь и сейчас:

  • -a (—all) — включает в себя все основные опции.
  • — b (—boot) — показывает время загрузки операционной системы.
  • -d (—dead) — выводит перечень зомби-процессов.
  • — H (—heading) — никак не влияет на получаемую информацию, зато добавляет колонкам заголовки и помогает понять что где находится.
  • -m — показать пользователя, который сейчас работает в терминале.
  • -r — вывести текущий уровень запуска (runinit);
  • -t — показать последнее изменение системных часов;
  • -s вывести только имя, терминальную сессию и время.
  • -q вывести количество авторизованных пользователей.
  • -T — данные о терминальной сессии.
  • -u — показать активных пользователей.
  • —ips — вместо названия хостов показывает ips.
  • —lookup — используется в сочетании с —ips, выводит данные, которые основываются на сохраненном IP, если он доступен, а не на названии хоста.
Читайте также:  Изменение владельца папки linux

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

Используя опцию -a, мы получаем максимум данных, которыми команда готова снабдить нас без каких-либо дополнительных указаний. В состав этой опции входят опции -b, -d, —login, -p, -r, -t, -T, -u:

Этих данных больше, чем при простом использовании who:

Чтобы узнать только время загрузки системы, достаточно написать в терминале:

Нужно узнать текущий уровень запуска (runinit)? Для этого служит команда who в сочетании с опцией -r:

При использовании опции -s выводятся значения NAME, LINE и TIME — информация, идентичная той, что будет получена без использования каких-либо опций. Все то же самое, но уже с добавлением данных о состоянии терминальной сессии, показывает опция -T.

Состояние — это возможность принимать сообщения от других терминалов. Если рядом с названием терминальной линии стоит «+», как на скриншоте, значит, сообщения могут быть приняты от любого стороннего терминала, в противном случае значение примет вид «-». Если вместо плюса или минуса там находится вопросительный знак, то линия неисправна:

Не упоминается в мануале опция -q, тем не менее, она работает, выводя информацию о количестве пользователей в системе:

С помощью -u можно узнать информацию о тех пользователях, которые активны в данный момент:

На этом же скрине видны изменения, которые происходят при использовании опции -H — у колонок с данными появились заголовки.А вот и зомби-процессы, которые показывает опция -d:

Кстати, поле EXIT при использовании этой опции не выводится. Чтобы увидеть его, следует использовать -a.

Выводы

Команда who Linux — это интересный и полезный инструмент для пользователей Linux. С ее помощью можно узнать всю доступную информацию о пользователях, которые активны в системе сейчас или были активны раньше. Мы постарались как можно подробнее рассказать вам о правилах и нюансах использования who, однако, если у вас остались вопросы, задавайте их в комментариях.

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

Источник

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