Изменение первичной группы пользователя
Хотя учетная запись пользователя может входить в нескольких групп, одна
из групп всегда является «основной группой», а остальные являются
«вторичными группами». Процесс входа пользователя, файлы и папки,
созданные пользователем, будут назначены первичной группе.
Чтобы изменить основную группу, которой назначен пользователь, запустите команду usermod, заменив group_name на имя группы, а user_name на имя учетной записи пользователя.
1 |
Обратите внимание здесь на -g. Когда вы используете маленькую g, вы назначаете главную группу
Когда вы используете заглавную -G , как в примерах выше, вы назначаете вторичную группу.
Несколько советов о перечислении пользователей в Linux
Вы только что увидели три способа просмотра пользователей в Linux. Вот несколько советов, которые помогут вам при работе с списком пользователей.
Список только имена пользователей
У вас уже есть команда compgen для этого, но вам не нужно постоянно ее помнить.
Если мы хотим получить только список имен пользователей в системе, вы можете использовать команду awk или команду cut для фильтрации вывода двух других команд, которые мы видели ранее.
или
Любой из них даст нам отфильтрованный список пользователей, показывая только самый первый столбец с именем пользователя:
Это может быть полезно, если вы хотите знать, существует ли конкретное имя пользователя в системе:
Это вывод:
Список всех подключенных пользователей
Если вы хотите знать какие пользователи в настоящее время вошли в вашу систему Linux, вам нужно использовать простую команду who и это немедленно выведет список текущих имен пользователей с активным сеансом в вашей системе.
В этом случае в списке появится не только список подключенных имен пользователей, но и то, как они подключены, с момента, когда они подключены и откуда они подключены.
В самом первом столбце будет указано, какое это имя пользователя.
Во втором столбце будет указано, к какому типу соединения это относится: если оно обозначено знаком «: X», где X — число, это означает, что используется графический интерфейс пользователя (GUI) или сеанс рабочего стола, например Gnome, XDE и т. д. ; если терминал отображает «pts/X», где X — число, это означает, что это соединение, установленное по протоколу SSH (командная строка).
В третьем столбце будет указано, с каких пор этот сеанс был подключен к серверу (дата и время). В четвертом и последнем столбце будет указано место, откуда он подключен. Если удаленно, будет отображаться IP-адрес, с которого установлено соединение, если локально (например, GUI), будет отображаться «(: X)», где X — это число сеанс в этом случае и будет соответствовать число во втором столбце для этой строки.
Итог
Как видите, перечисление пользователей в Linux совсем не сложно. Он состоит из простых команд, которые выводят всю информацию для вас, что бы вы ни хотели сделать или получить эту информацию, это то, что вам нужно отфильтровать в зависимости от того, что вы хотите проверить в системе.
Как отличить обычных пользователей от системных?
Системный пользователь обычно создает обычных пользователей. Пользователь системы создается при установке новой Ubuntu или другой операционной системы Linux. Системный пользователь является пользователем root. Вы также можете создать системного пользователя для использования определенных приложений. В то время как обычные пользователи — это те, которые созданы пользователями с привилегиями sudo или пользователем root. Итак, у каждого обычного и системного пользователя есть учетная запись для входа, домашний каталог и номер идентификатора пользователя (UID), который автоматически назначает диапазон между минимальным (UID_MIN) и максимальным (UID_MAX) с помощью Файл «/etc/login.defs».
Проверьте минимальный (UID_MIN) и максимальный (UID_MAX) пределыИспользуя следующую команду, вы можете проверить диапазон значений для обычных пользователей между UID_MIN и UID_MAX:
$ grep -E ‘^ UID_MIN | ^ UID_MAX’ /etc/login.defs
Приведенный выше вывод показывает, что у обычных пользователей UID от 1000 до 60000.
Список обычных пользователей в UbuntuUID_MIN и UID_MAX помогают нам составить список обычных пользователей в нашей системе. Итак, диапазоны UID позволяют запрашивать список обычных пользователей в вашей системе Linux следующим образом:
$ getent passwd {1000..60000}
Файлы конфигурации
В файле /etc/passwd, который упоминался ранее, хранится вся информация о пользователях кроме пароля. Одна строка из этого файла соответствует описанию одного пользователя. Примерное содержание строки таково:
Строка состоит из нескольких полей, каждое из которых отделено от другого двоеточием. Значение каждого поля:
- Имя пользователя для входа в систему.
- Необязательный зашифрованный пароль.
- Числовой идентификатор пользователя (UID).
- Числовой идентификатор группы (GID).
- Pupkin Поле комментария
- Домашний каталог пользователя.
- Оболочка пользователя.
Второе и последнее поля необязательные и могут не иметь значения.
В /etc/group, как очевидно из названия хранится информация о группах. Она записана в аналогичном /etc/passwd виде:
Строка состоит из нескольких полей, каждое из которых отделено от другого двоеточием. Значение каждого поля:
- Название группы
- Необязательный зашифрованный пароль.
- Числовой идентификатор группы (GID).
- Список пользователей, находящихся в группе.
В этом файле второе и четвертое поля могут быть пустыми.
Файл /etc/shadow хранит в себе пароли, по этому права, установленные на этот файл, не дают считать его простому пользователю. Пример одной из записей из этого файла:
Здесь:
- Имя пользователя для входа в систему.
- Необязательный зашифрованный пароль.
- Дата последней смены пароля.
- Минимальный срок действия пароля.
- Максимальный срок действия пароля.
- Период предупреждения о пароле.
- Период неактивности пароля.
- Дата истечения срока действия учётной записи.
Получите список всех пользователей с помощью файла /etc/passwd
Информация о локальном пользователе хранится в . Каждая строка в этом файле представляет информацию для входа в систему для одного пользователя. Чтобы открыть файл, вы можете использовать или :
Каждая строка в файле содержит семь полей, разделенных двоеточиями, которые содержат следующую информацию:
- Имя пользователя.
- Зашифрованный пароль ( означает, что пароль хранится в ).
- Идентификационный номер пользователя (UID).
- Идентификационный номер группы пользователя (GID).
- Полное имя пользователя (GECOS).
- Домашний каталог пользователя.
- Оболочка входа (по умолчанию ).
Если вы хотите отображать только имя пользователя, вы можете использовать команды или для печати только первого поля, содержащего имя пользователя:
Как посмотреть список пользователей в терминале
Сперва рассмотрим как посмотреть пользователей ubuntu в терминале Linux, так как это наиболее универсальный способ, который работает почти во всех дистрибутивах. В операционной системе Linux есть специальный файл в котором хранится информация обо всех пользователях. Это /etc/passwd. Записи в файле имеют следующий синтаксис:
имя_пользователя пароль ид ид_группы группа домашний_каталог оболочка
Надо заметить, что вместо пароля теперь записывается буква X это было сделано для безопасности. Все пароли пользователей хранятся теперь в другом файле. Остается только набрать команду и вы узнаете список пользователей linux:
Пользователи с ID меньше 1000 — системные, они были созданы во время установки некоторых сервисов для более безопасной их работы. Этих пользователей трогать не следует. В этом примере в системе вручную зарегистрирован только один пользователь — Sergiy.
В файле /etc/passwd слишком много лишних данных, если вам нужны только имена пользователей, можно отфильтровать вывод:
Так вы можете посмотреть всех пользователей Ubuntu. С зарегистрированными пользователями разобрались. Но намного интереснее посмотреть какие пользователи сейчас активны в системе, и какие команды они выполняют. Для этого есть утилита w:
Здесь выводятся все выполняемые пользователями команды. Если пользователь сейчас выполняет в терминале несколько команд, то будет отображено два пункта для одного пользователя.
Кроме того, вы можете посмотреть историю входов пользователей в систему. Для этого есть команда last, она выводит информацию на основе лога /var/wtmp:
Дату последнего входа для каждого пользователя вы можете посмотреть с помощью команды lastlog:
Если пользователь никогда не входил, команда так и скажет, в противном случае мы увидим дату последнего входа.
Команды Linux, для работы с файлами
Эти команды используются для обработки файлов и каталогов.
33. ls
Очень простая, но мощная команда, используемая для отображения файлов и каталогов. По умолчанию команда ls отобразит содержимое текущего каталога.
34. pwd
Linux pwd — это команда для показывает имя текущего рабочего каталога. Когда мы теряемся в каталогах, мы всегда можем показать, где мы находимся.
Пример ример ниже:
35. mkdir
В Linux мы можем использовать команду mkdir для создания каталога.
По умолчанию, запустив mkdir без какой-либо опции, он создаст каталог в текущем каталоге.
36. cat
Мы используем команду cat в основном для просмотра содержимого, объединения и перенаправления выходных файлов. Самый простой способ использовать cat— это просто ввести » имя_файла cat’.
В следующих примерах команды cat отобразится имя дистрибутива Linux и версия, которая в настоящее время установлена на сервере.
37. rm
Когда файл больше не нужен, мы можем удалить его, чтобы сэкономить место. В системе Linux мы можем использовать для этого команду rm.
38. cp
Команда Cp используется в Linux для создания копий файлов и каталогов.
Следующая команда скопирует файл ‘myfile.txt» из текущего каталога в «/home/linkedin/office«.
39. mv
Когда вы хотите переместить файлы из одного места в другое и не хотите их дублировать, требуется использовать команду mv. Подробнее можно прочитать ЗДЕСЬ.
40.cd
Команда Cd используется для изменения текущего рабочего каталога пользователя в Linux и других Unix-подобных операционных системах.
41. Ln
Символическая ссылка или программная ссылка — это особый тип файла, который содержит ссылку, указывающую на другой файл или каталог. Команда ln используется для создания символических ссылок.
Команда Ln использует следующий синтаксис:
42. touch
Команда Touch используется в Linux для изменения времени доступа к файлам и их модификации. Мы можем использовать команду touch для создания пустого файла.
44. head
Команда head используется для печати первых нескольких строк текстового файла. По умолчанию команда head выводит первые 10 строк каждого файла.
45. tail
Как вы, возможно, знаете, команда cat используется для отображения всего содержимого файла с помощью стандартного ввода. Но в некоторых случаях нам приходится отображать часть файла. По умолчанию команда tail отображает последние десять строк.
46. gpg
GPG — это инструмент, используемый в Linux для безопасной связи. Он использует комбинацию двух ключей (криптография с симметричным ключом и открытым ключом) для шифрования файлов.
50. uniq
Uniq — это инструмент командной строки, используемый для создания отчетов и фильтрации повторяющихся строк из файла.
53. tee
Команда Linux tee используется для связывания и перенаправления задач, вы можете перенаправить вывод и/или ошибки в файл, и он не будет отображаться в терминале.
54. tr
Команда tr (translate) используется в Linux в основном для перевода и удаления символов. Его можно использовать для преобразования прописных букв в строчные, сжатия повторяющихся символов и удаления символов.
Основное
Пользователь — это любой кто пользуется компьютером.
Под каждого пользователя, создается свой каталог, пользователю назначается командная оболочка (командный интерпретатор, используемый в операционных системах семейства UNIX). Например: /bin/bash, /bin/zsh, /bin/sh и другие.
Каждому пользователю назначается идентификационный номер (User ID). Сокращенно номер обозначается как UID, является уникальным идентификатором пользователя. Операционная система отслеживает пользователя именно по UID, а не по их имени.
Также, каждому пользователю назначается пароль для входа в систему.
Каждый пользователь принадлежит минимум к одной или нескольким группам.
Помимо пользователей, существуют группы. Так же как и пользователь, группа обладает правам доступа к тем или иным каталогам, файлам, периферии. Для каждого файла определён не только пользователь, но и группа. Группы группируют пользователей для предоставления одинаковых полномочий на какие-либо действия.
Каждой группе назначается идентификационный номер (group ID). Сокращённо GID, является уникальный идентификатором группы. Принадлежность пользователя к группе устанавливается администратором.
Метод 1. Список всех пользователей, отображающий содержимое файла / etc / passwd
Все данные о локальных пользователях хранятся в файле «/ etc / passwd». Каждая строка этого файла содержит информацию для входа в систему об одном локальном пользователе. Используя две следующие команды кошка и меньше, пользователь может просмотреть содержимое файла «/ etc / passwd»:
Чтобы отобразить содержимое / etc / passwd с помощью команды «cat», используйте следующий синтаксис:
$ cat / etc / passwd
Точно так же вы можете просмотреть содержимое файла «/ etc / passwd» с помощью команды «less».
$ меньше / etc / passwd
В файле / etc / passwd ’каждая строка состоит из полей, разделенных двоеточием. Следующая важная информация отображается для каждого пользователя:
- Имя пользователя представляет собой имя для входа.
- Это поле представляет собой зашифрованный пароль (x представляет пароль, который хранится в файле «/ etc / shadow»).
- UID представляет собой идентификационный номер пользователя
- GID, используемый для представления идентификационного номера группы пользователя.
- Полное имя пользователя (GECOS)
- Основной или домашний каталог пользователя.
- Он представляет собой «оболочку входа», для которой по умолчанию установлено значение / bin / bash.
Отображение только имени пользователя с помощью команд Awk и cutИногда вам нужно вывести только первое поле или имя пользователя. В этом случае две полезные команды, «awk» и «вырезать», помогут вам отобразить первое поле, которое означает имя пользователя на терминале.
В системе Ubuntu Linux «Awk» — это мощная утилита для работы с текстом, которая может легко получить единственное первое поле из файла / etc / passwd. Синтаксис команды ‘awk’ для отображения первого поля приведен ниже:
$ awk -F: ‘{печать $ 1}’ / etc / passwd
Вы также можете использовать команду «вырезать» для той же цели:
$ cut -d: -f1 / etc / passwd
Две приведенные выше команды будут отображать только имена всех пользователей в окне вашего терминала.
Get a List of All Users using the /etc/passwd File
Local user information is stored in the /etc/passwd file.
Each line in this file represents login information for one user.
To open the file you can either use cat or less :+
Each line in the file has seven fields delimited by colons that contain the following information:
- User name.
- Encrypted password (x means that the password is stored in the /etc/shadow file).
- User ID number (UID).
- User’s group ID number (GID).
- Full name of the user (GECOS).
- User home directory.
- Login shell (defaults to /bin/bash).
If you want to display only the username you can use either awk or cut commands to print only the first field containing the username:
Синтаксис
Рассмотрим синтаксис.
Основные параметры:
- -a — читает файл /etc/utmp, включает все основные опции;
- -b — показывает дату и время загрузки операционной системы;
- -d — показывает зомби-процессы.
- -u — выводит активных пользователей.
- -s — выводит имя, терминальную сессию и время, данный параметр используется по умолчанию;
- -T — информация о терминальной сессии;
- -q — количество пользователей в системе в данный момент;
- -r — показывает уровень процесса init.
Обычно для выполнения команды who берется информация файла: «/etc/utmp».
Альтернативные файлы: «/etc/wtmp» и «/etc/inittab».
Примеры
Если не использовать опции и аргументы, на экране появятся данные по умолчанию, включающие в себя информацию об учетных записях (тех, кто подключен к системе). Чтобы ознакомиться с данными о пользователе, который изъявил желание обратиться к терминалу прямо сейчас («спросить» у системы о самом себе), необходимо использовать команду «who am i».
Для получения обширной информации о подключенных пользователей достаточно ввести команду в виде:
Каких-либо дополнительных указаний в этом случае не потребуется. Если использовать исключительно «who», данных будет сравнительно меньше. Детализировать этот запрос или нет – решать только вам. Смотрите по ситуации.
Время загрузки системы можно посмотреть по команде:
Впишите её в терминале и ознакомьтесь с результатами запроса.
Чтобы посмотреть «runinit» (текущий уровень запуска), впишите в команду соответствующую опцию. Это будет выглядеть так:
Опция -s не имеет особого смысла, поскольку она провоцирует вывод таких стандартных значений, как «Имя пользователя», «терминальная линия», «время начала/окончания сеанса». Эта информация доступна и без добавления каких-либо опций. Едем дальше.
С помощью аргумента -T можно узнать состояние терминальной сессии. На практике это выглядит следующим образом:
Для чего нужна информация о состоянии терминальной сессии? От её состояния зависят некоторые нюансы в работе пользователя
Обратите внимание на название любой сессии, отображенной в окошке терминала. Если рядом с ним указан значок «+», значит, пользователь может получать сообщения от других терминалов
Если такой возможности нет, рядом с названием сессии будет указан значок «-».
При неисправности линии появится вопросительный знак.
При необходимости узнать, сколько пользователей подключено к системе, вводится:
Чтобы посмотреть, кто из пользователей активен в данный момент времени, введите команду:
При добавлении опции -d отображаются зомби-процессы:
Заключение
Основная задача утилиты who заключается в получении информации о пользователях, подключенных к системе. Вторичная задача – сбор данных о терминальных сессиях, благодаря которым и происходит их подключение.
Благодаря выше предоставленным примерам команд вы тоже можете ощутить простоту отслеживания данных о user системы. Всего несколько нажатий клавиш – и ответы на вопросы найдены.
Список пользователей в GUI
В Ubuntu зарегистрированными в системе пользователями можно управлять с помощью параметров системы. Откройте утилиту и выберите в самом низу пункт Учетные записи. Здесь уже не будут отображаться системные пользователи. В панели слева — непосредственно сам список, а справа можно изменить данные и настройки:
Для KDE есть более интересная утилита управления пользователями — KUser:
Здесь так же как и в терминале отображены все пользователи, в том числе системные. Можно менять различные данные, в том числе пароли, основную и дополнительную группы и т д.
Как видите, только в терминале вы можете посмотреть более подробную информацию, проверить даты входа и точно узнать не используют ли систему другие люди.
Как получить список пользователей в Linux
В этом руководстве вы узнаете, как составить и получить список пользователей в системах Linux.
Получить список пользователей, через /etc/passwd файл
Информация о локальном пользователе хранится в /etc/passwd файле. Каждая строка в этом файле представляет информацию для входа в систему для одного пользователя. Чтобы открыть файл, вы можете использовать cat или less :
Каждая строка в файле имеет семь полей, разделенных двоеточиями, которые содержат следующую информацию:
- Имя пользователя.
- Зашифрованный пароль ( x означает, что пароль хранится в /etc/shadow файле).
- Идентификационный номер пользователя (UID).
- Идентификационный номер группы пользователя (GID).
- Полное имя пользователя (GECOS).
- Домашний каталог пользователя.
- Оболочка входа (по умолчанию /bin/bash ).
Если вы хотите отобразить только имя пользователя, вы можете использовать команду awk или cut для печати только первого поля, содержащего имя пользователя:
Получить список пользователей командой getent
Команда getent отображает записи из баз данных, настроенных в /etc/nsswitch.conf файле, включая passwd базу данных, которую можно использовать для запроса списка всех пользователей.
Чтобы получить список всех пользователей Linux, введите следующую команду:
Как видите, вывод такой же, как и при отображении содержимого /etc/passwd файла. Если вы используете LDAP для аутентификации пользователей, getent будут отображаться все пользователи Linux как из /etc/passwd файла, так и из базы данных LDAP.
Вы также можете использовать awk или cut для печати только первого поля, содержащего имя пользователя:
Проверить, существует ли пользователь в системе Linux
Теперь, когда мы знаем, как получить список всех пользователей, чтобы проверить, существует ли пользователь в нашей Linux-машине, мы можем просто отфильтровать список пользователей, передав список grep команде.
Например, чтобы узнать, существует ли пользователь с именем jack в нашей системе Linux, мы можем использовать следующую команду:
Если пользователь существует, приведенная выше команда напечатает информацию для входа пользователя. Нет вывода, что означает, что пользователь не существует.
Мы также можем проверить, существует ли пользователь, не используя grep команду, как показано ниже:
Как и раньше, если пользователь существует, команда отобразит информацию для входа пользователя.
Если вы хотите узнать, сколько учетных записей пользователей у вас есть в вашей системе, передайте getent passwd вывод в wc команду:
Отсеивание системных пользователей от обычных пользователей
В глазах Linux нет разницы между системным пользователем и человеком. Каждый раз, когда вы устанавливаете ОС, она создает ряд системных пользователей. Другие системные пользователи создаются для различных пакетов, таких как программное обеспечение для веб-служб или почтовых служб.
Итак, как вы можете перечислить только обычных пользователей системы Linux? Ключевым моментом здесь является понимание того, что при создании обычного пользователя его UID назначается в пределах определенного диапазона чисел. Проверив файл /etc/login.defs, мы можем определить диапазон значений UID, доступных для учетных записей обычных пользователей.
grep -E ‘^UID_MIN|^UID_MAX’ /etc/login.defs
Основываясь на выводе, я знаю, что обычные пользователи должны иметь UID от 1000 до 60000. Исходя из этого, я могу создать запрос getent, который будет отображать только обычных пользователей.
получить пароль {1000..60000}
Имейте в виду, что getent будет зависать даже после того, как отобразит свой вывод. Вы можете нажать Ctrl-C, чтобы завершить процесс, или дождаться его завершения. Обычно поиск в базе данных passwd занимает менее 15 секунд.
Более общая версия этой команды учитывает разные значения UID_MIN и UID_MAX, которые могут использовать разные серверы.
eval getent passwd {$(awk ‘/^UID_MIN/ {print $2}’ /etc/login.defs)..$(awk ‘/^UID_MAX/ {print $2}’ /etc/login.defs)}
В этой команде мы используем возможности Linux делать несколько вещей одновременно. Команды awk получают значения UID_MIN и UID_MAX, а затем используют их в команде getent.
Теперь предположим, что все, что нам нужно, это имена пользователей. Мы снова передаем наш вывод через команду cut, например:
eval getent passwd {$(awk ‘/^UID_MIN/ {print $2}’ /etc/login.defs)..$(awk ‘/^UID_MAX/ {print $2}’ /etc/login.defs)} | вырезать -d: -f1
Выполнение этой команды может занять от 10 до 15 секунд, так что наберитесь терпения.
Пользователи и Группы в Linux
Пользователи:
Пользователь«_»«.»
Root (от англ. root — корень; читается «рут»), суперпользователь — это аккаунт в UNIX-подобных операционных системах с идентификатором (UID) 0, владелец этого аккаунта имеет право на выполнение любой операции. В целях безопасности работать под суперпользователем root не рекомендуется.
/home/bin/bash, /bin/zsh, /bin/shUIDUIDpasswd
Просмотр пользователей
/etc/passwd
# cat /etc/passwd
root:xD928Jhs7sH32:0:0:root:/root:/bin/bash newuser:Xv8Q981g71oKK:1000:100:John Smith:/home/newuser:/bin/bash
account:password:UID:GID:GECOS:directory:shell
— имя пользователя — зашифрованный пароль пользователя — идентификационный номер пользователя — идентификационный номер основной группы пользователя — необязательное поле, используемое для указания дополнительной информации о пользователе (например, полное имя пользователя) — домашний каталог () пользователя — командный интерпретатор пользователя (обычно )
who
newuser pts/0 2013-11-13 14:19 (:0)
Создание, управление и удаление пользователей
/etc/passwdUIDGIDUID1000GID100useraddadduser/etc/default/useradd
# cat /etc/default/useradd
GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/bash SKEL=/etc/skel CREATE_MAIL_SPOOL=no
/home/home/user/bin/bash/bin/shuseradd
# useradd -m -g users -G audio,lp,optical,storage,video,wheel,games,power,scanner -s /bin/bash newuser
# useradd -m -g -G -s
- — создаёт домашний каталог, вида
- — имя или номер основной группы пользователя.
- — список дополнительных групп, в которые входит пользователь.
- — определяет командную оболочку пользователя.
# man useradd
chfnusername
# chfn
passwd
# passwd
# chage -d 0
chage
# man chage
userdel
# userdel -r
-r
Управление группами
групппользователем
# cat /etc/group
/etc/group
# groups
id
# id
# groupadd
# gpasswd -a
# gpasswd -d
# groupdel
Учетные записи пользователей могут быть назначены одной или нескольким
группам в Linux. Вы можете настроить права доступа к файлам и другие
привилегии по группам. Например, на Ubuntu только пользователи из группы
sudo могут использовать команду sudo для получения повышенных
разрешений.
Как узнать, в какие группы входит пользователь
Чтобы просмотреть группы, которым назначена текущая учетная запись пользователя, выполните команду groups. Вы увидите список групп.
1 |
Чтобы просмотреть числовые идентификаторы, связанные с каждой группой, выполните команду id:
id
Для просмотра групп в которые входит другая учетная запись
пользователя, запустите команду groups и укажите имя учетной записи
пользователя.
1 |
Вы также можете просмотреть числовые идентификаторы, связанные с каждой группой, запустив команду id и указав имя пользователя.
1 |
Первой группой в списке групп или группой, показанной после «gid=»
в списке идентификаторов, является первичная группа учетной записи
пользователя. Другие группы – это вторичные группы. Итак, на скриншоте
ниже основной группой учетной записи пользователя является mial.
Системные команды Linux
Эти команды используются для просмотра информации и управления, связанной с системой Linux.
1. uname
Команда Uname используется в Linux для поиска информации об операционных системах. В Uname существует много опций, которые могут указывать имя ядра, версию ядра, тип процессора и имя хоста.
Следующая команда uname с опцией отображает всю информацию об операционной системе.
2. uptime
Информация о том, как долго работает система Linux, отображается с помощью команды uptime. Информация о времени безотказной работы системы собирается из файла ‘/proc/uptime‘. Эта команда также отобразит среднюю нагрузку на систему.
Из следующей команды мы можем понять, что система работает в течение последних 36 минут.
Полное руководство команды Uptime
3. hostname
Вы можете отобразить имя хоста вашей машины, введя в своем терминале. С помощью опции вы можете просмотреть ip-адрес компьютера. А с помощью параметра вы можете просмотреть доменное имя.
4. last
Команда last в Linux используется для определения того, кто последним вошел в систему на вашем сервере. Эта команда отображает список всех пользователей, вошедших (и вышедших) из «/var/log/wtmp » с момента создания файла.
Вам просто нужно ввести «last» в своем терминале.
5. date
В Linux команда date используется для проверки текущей даты и времени системы. Эта команда позволяет задать пользовательские форматы для дат.
Рекомендуем статью Команда Date (Дата) в Linux с примерами использования
Например, используя «date +%D«, вы можете просмотреть дату в формате «ММ/ДД/ГГ«.
6. cal
По умолчанию команда cal отображает календарь текущего месяца. С помощью опции вы можете просмотреть календарь на весь год.
9. reboot
Команда reboot используется для перезагрузки системы Linux. Вы должны запустить эту команду из терминала с правами суперпользователя sudo.
10. shutdown
Команда shutdown используется для выключения или перезагрузки системы Linux. Эта команда позволяет планировать завершение работы и уведомлять пользователей сообщениями о выключении и перезагрузке.
По умолчанию компьютер (сервер) выключится через 1 минуту. Вы можете отменить расписание, выполнив команду:
Немедленное отключение тоже возможно, для этого используется опция «now»
Системные и обычные пользователи
Технической разницы между системой и обычными пользователями нет. Обычно пользователи системы создаются при установке ОС и новых пакетов. В некоторых случаях вы можете создать системного пользователя, который будет использоваться некоторыми приложениями.
Обычные пользователи — это пользователи, созданные пользователем root или другим пользователем с привилегиями sudo. Обычно у обычного пользователя есть настоящая оболочка входа в систему и домашний каталог.
У каждого пользователя есть числовой идентификатор пользователя, называемый UID. Если не указан при создании нового пользователя с помощью команды useradd, UID будет автоматически выбран из файла /etc/login.defs в зависимости от значений UID_MIN и UID_MIN.
Чтобы проверить значения UID_MIN и UID_MIN в вашей системе, вы можете использовать следующую команду:
grep -E '^UID_MIN|^UID_MAX' /etc/login.defs
Вывод
UID_MIN 1000 UID_MAX 60000
Из выходных данных выше мы видим, что все обычные пользователи должны иметь UID от 1000 до 60000. Знание минимального и максимального значения позволяет нам запрашивать список всех обычных пользователей в нашей системе.
getent passwd {1000..60000}
Команда перечислит всех обычных пользователей в нашей системе Linux:
Значения UID_MIN и UID_MIN вашей системы могут отличаться, поэтому более общая версия приведённой выше команды будет:
eval getent passwd {$(awk '/^UID_MIN/ {print $2}' /etc/login.defs)..$(awk '/^UID_MAX/ {print $2}' /etc/login.defs)}
Если вы хотите распечатать только имена пользователей, просто направьте вывод в команду cut:
eval getent passwd {$(awk '/^UID_MIN/ {print $2}' /etc/login.defs)..$(awk '/^UID_MAX/ {print $2}' /etc/login.defs)} | cut -d: -f1
Примеры использования 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.
Как составить список пользователей в Ubuntu Linux VPS: руководство для начинающих
Если вы хотите просмотреть всех пользователей в Linux Ubuntu VPS, вы можете использовать команду /etc/passwd, поскольку данные локального пользователя сохраняются в файле «/etc/passwd». Есть два способа выполнить эту команду, а именно:
cat /etc/passwd
Или же
less /etc/passwd
После успешного выполнения указанной выше команды вы получите следующий результат:
Эти выходные строки относятся к пользователям. Количество строк зависит от количества пользователей в системе.
Каждая строка содержит семь разных полей, которые представляют подробные сведения о конкретном пользователе. Например, первая строка вывода — это , что означает:
- root — логин пользователя.
- b — заполнитель пароля, так как фактический пароль сохраняется в отдельном файле.
- 0 — UserID пользователя.
- 0 — GroupID пользователя.
- root — командное поле с некоторыми подробностями о пользователе.
- /root — домашний каталог, который является основным каталогом пользователя.
- /bin/bash — оболочка пользователя.
Обратите внимание, что двоеточия (:) используются для разделения значений в выводе. Выполните следующие команды, чтобы увидеть имена пользователей:
Выполните следующие команды, чтобы увидеть имена пользователей:
cut -d : -f 1 /etc/passwd
Или же
awk -F: '{ print $1}' /etc/passwd