Перейти к содержимому

Как посмотреть информацию о пользователе

  • автор:

Как вывести список пользователей в Linux

Вы когда-нибудь хотели перечислить всех пользователей в вашей системе Linux или подсчитать количество пользователей в системе? Есть команды для создания пользователя, удаления пользователя, вывода списка пользователей, вошедших в систему, но какова команда для вывода списка всех пользователей в Linux?

Это руководство покажет вам, как посмотреть список пользователей в системах Linux.

Список всех пользователей Linux с помощью файла /etc/passwd

Информация о локальных пользователях хранится в файле /etc/passwd. Каждая строка в этом файле представляет информацию для входа в систему для одного пользователя. Чтобы открыть файл, вы можете использовать cat или less:

less /etc/passwd

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

  • Имя пользователя.
  • Зашифрованный пароль (x означает, что пароль хранится в файле /etc/shadow).
  • Идентификационный номер пользователя (UID).
  • Идентификационный номер группы пользователя (GID).
  • Полное имя пользователя (GECOS).
  • Домашний каталог пользователя.
  • Оболочка входа (по умолчанию /bin/bash).

Если вы хотите отображать только имя пользователя, вы можете использовать команды awk или cut для печати только первого поля, содержащего имя пользователя:

awk -F: '< print $1>' /etc/passwd # ИЛИ cut -d: -f1 /etc/passwd

Получение списка всех пользователей с помощью команды getent

Команда getent отображает записи из баз данных, настроенных в файле /etc/nsswitch.conf, включая базу данных passwd, которую можно использовать для запроса списка всех пользователей.

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

getent passwd

Как видите, вывод такой же, как и при отображении содержимого файла /etc/passwd. Если вы используете LDAP для аутентификации пользователей, getent будет отображать всех пользователей Linux как из файла /etc/passwd, так и из базы данных LDAP.

Вы также можете использовать awk или cut для печати только первого поля, содержащего имя пользователя:

getent passwd | awk -F: '< print $1>' # ИЛИ getent passwd | cut -d: -f1

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

compgen -u

Как проверить, существует ли пользователь в системе Linux

Теперь, когда мы знаем, как составить список всех пользователей, чтобы проверить, существует ли пользователь в нашем Linux-сервере, мы можем просто отфильтровать список пользователей, передав его по конвейеру команде grep.

Например, чтобы узнать, существует ли в нашей системе Linux пользователь с именем mial, мы можем использовать следующую команду:

getent passwd | grep mial

Если пользователь существует, приведённая выше команда распечатает краткую информацию о нём. Если нет вывода, что означает, что пользователя не существует.

Мы также можем проверить, существует ли пользователь, не используя команду grep, как показано ниже:

getent passwd mial

Как и раньше, если пользователь существует, команда отобразит информацию для входа в систему.

Если вы хотите узнать, сколько учётных записей пользователей у вас в системе, передайте вывод getent passwd команде wc:

getent passwd | wc -l

Как видно из вывода выше, на удалённом сервере Linux 510 учётных записи пользователей.

Системные и обычные пользователи

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

Обычные пользователи — это пользователи, созданные пользователем 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

Команда перечислит всех обычных пользователей в нашей системе Linux:

Значения UID_MIN и UID_MIN вашей системы могут отличаться, поэтому более общая версия приведённой выше команды будет:

eval getent passwd <$(awk '/^UID_MIN/ ' /etc/login.defs)..$(awk '/^UID_MAX/ ' /etc/login.defs)>

Если вы хотите распечатать только имена пользователей, просто направьте вывод в команду cut:

eval getent passwd <$(awk '/^UID_MIN/ ' /etc/login.defs)..$(awk '/^UID_MAX/ ' /etc/login.defs)> | cut -d: -f1

Как показать пользователей, имеющих оболочки входа

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

cat /etc/passwd | grep -E 'bash|sh|bin|zsh' cat /etc/passwd | grep -E -v 'nologin'

Обратите внимание, что эти команды не равнозначны.

Как вывести всех пользователей, имеющих домашний каталог

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

getent passwd | grep '/home'

Заключение

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

Те же команды применимы для любого дистрибутива Linux, включая Ubuntu, CentOS, RHEL, Debian, Linux Mint, Arch Linux и Manjaro.

Не стесняйтесь оставлять комментарии, если у вас есть вопросы.

Связанные статьи:

  • Как создать нового пользователя в Linux (77.1%)
  • Как в Linux изменить login shell (оболочку входа в систему). Инструкция по команде chsh (77.1%)
  • Как удалить пользователя в Linux (и удалить все его «хвосты») (77.1%)
  • Как в Linux добавить пользователя в группу (или вторичную группу) (73%)
  • Как вывести все задачи Cron (73%)
  • UEFI не видит установленный Linux (РЕШЕНО) (RANDOM — 50%)

Рекомендуемые статьи:

1 Комментарий

Александр 11.12.2022 в 22:08

Добрый вечер! Как человеку всю жизнь пользующемся Windows, не очень понятны вещи: 1) В каких группах состоит пользоватлей (Windows тема) — админ, пользователь и т. д. 2) Зачем столько пользоватлей? (в Windows SYSTEM и User — все.) 3) Зачем столько команд для вывода списка пользователей: less, cut, geten, compgen Сейчас будем массово переходить на Unix. И аналогии с фортачками могут сильно помочь. Спасибо!

Управление пользователями

url image

Каждый пользователь имеет свой уникальный идентификатор пользователя, UID . Он отличается в зависимости от типа пользователя:

  • администратор — 0
  • обычный пользователь — от 100
  • системный пользователь — от 1 до 100

Чтобы упростить процесс настройки прав для новых пользователей, их объединяют в группы. Каждая группа имеет свой набор прав и ограничений. Любой пользователь, создаваемый или добавляемый в такую группу, автоматически их наследует. Если при добавлении пользователя для него не указать группу, то у него будет своя, индивидуальная группа — с именем пользователя. Один пользователь может одновременно входить в несколько групп.

Информацию о каждом пользователе сервера можно посмотреть в файле /etc/passwd . Пользователи в нём перечислены в следующем формате:

test-user:x:1000:1000::/home/test-user:/bin/bash

говорит о том, что пароль зашифрован (хранится в /etc/shadow )

идентификатор пользователя ( UID ) и идентификатор группы ( GID ), к которой он принадлежит

тут может быть ваша реклама комментарий к пользователю и его контакты. Например, имя сотрудника или название службы. Т.н. GECOS -поле

домашняя папка пользователя

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

Если вам известно имя пользователя и вы хотите узнать о нём побольше, необязательно читать /etc/passwd . Всё то же самое в человекочитаемом виде можно посмотреть с помощью команды pinky -l :

pinky -l test-user

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

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

Узнать UID пользователя можно с помощью команды id :

id test-user

Для именования пользователей в Linux есть набор стандартных правил:

  • Имя пользователя может содержать только английские буквы [a-z] в верхнем и нижнем регистре, цифры, символ «_» , тире «-» и точку;
  • Имя пользователя может оканчиваться символом «$» ;
  • Имя пользователя не может начинаться с тире, содержать только цифры или состоять из «.» или «..» ;
  • Не рекомендуется использовать точку в начале имени пользователя;
  • Имя пользователя может включать до 32 символов.

Теперь перейдём непосредственно к управлению пользователями.

  • Создание пользователей
  • Изменение данных пользователей
  • Удаление пользователей
  • Группы пользователей
  • Привилегии суперпользователя. Sudo

Создание пользователей

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

На первом шаге используется команда useradd c набором опций для настройки нового пользователя и его именем (логином):

useradd [как создать] [как назвать]

Эта команда имеет ряд настроек по умолчанию, которые задаются с помощью файлов /etc/default/useradd и /etc/login.defs Увидеть основные можно с помощью команды:

useradd -D

GID группы, в которую пользователь будет добавлен после создания

базовый каталог, в котором будет размещена директория пользователя

указывает время до блокировки пользователя, когда его пароль станет недействителен. Значение «-1» отключает опцию

дата, до которой действителен аккаунт. По умолчанию не установлена — то есть без ограничений

используется для настройки доступа к командной оболочке

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

определяет, нужно ли создать папку для писем этого пользователя в /var/spool/mail/

Все эти настройки применяются, если использовать самый простой вариант команды создания пользователя без параметров:

useradd test-user

Но обычно нам требуется добавить пользователя со специфическими настройками — для этого используется расширенный вариант этой команды. Перечислим основные опции:

создаёт указанную домашнюю директорию, если она ещё не существует

устанавливает /home/test-user в качестве домашней директории

-c «Евграф Шматкунос»

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

указывает группу, в которую попадёт пользователь после создания. Можно использовать с GID или именем группы. Указанная группа должна существовать. Используется в сочетании с ключом -N (отменяет автоматическое создание группы с именем пользователя)

указывает список дополнительных групп пользователя. Они перечисляются через запятую без пробелов

позволяет настроить доступ к shell

создаёт системного пользователя. Используется, когда вам нужно настроить службу на работу из-под конкретного пользователя. По умолчанию данные таких пользователей не вносятся в /etc/shadow , для них не создаётся домашняя папка

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

указывает дату, до которой аккаунт будет активен. Дата задаётся в формате YYYY-MM-DD

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

В итоге получится вот такая сборная солянка из настроек:

useradd -m -u 666 -d /home/users/test-user -c "Тестовый пользователь" -e 2060-01-01 -s /bin/bash test-user

В примере мы создаём тестового пользователя test-user с идентификатором 666 , домашней папкой в /home/users/test-user , комментарием «Тестовый пользователь» и доступом к командной оболочке. Учётная запись будет действительна до конца света по Ньютону.

Более подробную информацию о доступных опциях для useradd можно увидеть с помощью команды man useradd .

Очень важно после создания пользователя настроить для него надёжный пароль. Для этого нужно ввести следующую команду:

passwd test-user

Система предложит ввести и подтвердить пароль. На этом процесс создания пользователя можно считать завершённым.

Изменение данных пользователей

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

pgrep -l -u user

Проверить, авторизован ли пользователь, можно с помощью уже известной команды:

pinky user

Отредактировать данные существующего пользователя можно с помощью команды usermod . По структуре она похожа на предыдущую команду:

usermod [что поменять] [для какого пользователя]

Набор параметров расширен дополнительными опциями:

создаёт новую директорию, указанную в качестве домашней (если её не существует), и переносит туда данные из старой

меняет домашнюю директорию пользователя на /home/users/new-test-user

меняет комментарий к пользователю

добавляет пользователя в дополнительные группы

меняет командную оболочку пользователя

изменяет UID пользователя

меняет дату, до которой аккаунт будет активен

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

меняет имя пользователя на new-test-user

блокирует аккаунт пользователя. Для этого в файле /etc/shadow перед хэшем пароля пользователя ставится символ «!»

снимает блокировку с аккаунта (удаляет символ «!» из пароля в /etc/shadow )

То есть если мы захотим отредактировать данные пользователя test-user , созданного в примере выше, это будет выглядеть так:

usermod -l new-test-user -m -d /home/new-test-user -c "Чак Норрис" -u 100500 -e 3000-01-01 -f -1 test-user

В примере мы меняем логин — имя пользователя на new-test-user , изменяем домашнюю папку на /home/new-test-user с копированием файлов, меняем комментарий, UID пользователя, срок жизни аккаунта и отменяем блокировку в случае устаревания пароля.

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

Удаление пользователей

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

Для удаления пользователей используется команда userdel . Её структура аналогична предыдущим:

userdel [что удаляем] [кого удаляем]

Основных параметра два:

удаляет папки пользователя: домашнюю директорию, почтовую очередь

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

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

Группы пользователей

Информация о группах хранится в файле /etc/group . Работа с группами пользователей куда проще.

Группы применяются для делегирования прав доступа на определённые файлы, папки, скрипты сразу нескольким пользователям. Живой пример: работа с FTP-сервером. Вы выбираете какую-то директорию для работы с файлами, создаёте группу пользователей и присваиваете ей выбранную папку. Теперь вам не нужно отдельно настраивать права каждому новому пользователю — достаточно добавить его в эту группу, и он автоматически получит доступ к FTP-каталогу.

Создание

Для создания групп используется команда groupadd :

groupadd new-group

Из параметров можно выделить следующие:

если группа с указанным именем или GID уже существует, опция прерывает выполнение команды без соответствующей ошибки

позволяет назначить свой GID для создаваемой группы

создаёт системную группу

Устанавливает для группы пароль p@ssw0rd . Пароль запрашивается системой при попытке входа в группу с помощью команды newgrp .

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

Редактирование

Для редактирования групп используется команда groupmod . Список изменений задаётся с помощью параметров:

меняет GID группы на 100500

меняет имя группы на another-name

Например, если нам нужно изменить имя группы test-group на имя named-group , команда будет выглядеть так:

groupmod -n named-group test-group

Удаление

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

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

groupdel test-group

Как и в случае удаления пользователей, нужно вручную проверить, что на сервере не осталось данных, принадлежащих удалённой группе.

Управление пользователями в группе

Базовым инструментом для управления группами является утилита gpasswd . Она имеет несколько параметров, но с одной особенностью — в отличие от предыдущих примеров, здесь большинство параметров (кроме -A и -M ) не сочетаются. То есть в команде может быть только один параметр за раз.

Структура команды проста:

gpasswd [что сделать] [в какой группе]

Рассмотрим опции команды подробнее:

Добавляет пользователя new-user в группу

Удаляет пользователя bad-user из группы

Доступна для использования привилегированным пользователям (с правами root). Назначает список пользователей-администраторов группы

Доступна для использования привилегированным пользователям. Назначает список участников группы

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

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

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

gpasswd -a new-user test-group

Также для добавления пользователей в новую группу используется описанная выше команда usermod . Следующий пример добавляет пользователя test-user в группу new-group :

usermod -a -G new-group test-user

Или, если нужно указать группу new-group в качестве основной группы пользователя test-user :

usermod -g new-group test-user

Помимо этого, любой пользователь может сам авторизоваться и добавиться в новую группу с помощью команды:

newgrp new-group

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

Привилегии суперпользователя. Sudo

Итак, мы знаем, что на сервере есть три типа пользователей: администраторы (корневой пользователь root ), локальные пользователи (люди, которым мы предоставляем учётные записи для работы с сервером) и системные пользователи (сущности, от имени которых запускаются те или иные процессы). То есть реально для управления системой используются только первые два типа пользователей. Их основное различие — в объёме прав доступа.

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

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

Тем не менее, основная часть работы с конечными данными на сервере происходит именно под локальным пользователем — например, загрузка и изменение файлов сайтов. Если вы загрузите на сервер файл под root -ом, файл будет принадлежать ему, а не пользователю, в папку которого загружен. Соответственно, потом это может привести к ошибкам, если вручную не изменить владельца загруженного файла.

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

С учётом всего этого при администрировании оптимальной считается следующая практика: пользователь root как он есть отключается, а его привилегии делегируются узкому кругу локальных пользователей. Это даёт сразу несколько преимуществ:

  • повышается уровень внешней безопасности (отсутствие root отсекает часть автоматических попыток взлома);
  • ограничивается объём административных прав — повышение привилегий используется для конкретных рабочих операций и действует ограниченное время.

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

    Ubuntu и Debian: Для предоставления прав пользователи добавляются в группу sudo :

usermod -a -G sudo test-user
usermod -a -G wheel test-user

Можно делегировать права пользователям по отдельности — через файл /etc/sudoers Для работы с ним нужно вызвать специальный редактор:

visudo

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

Проверить, может ли пользователь использовать sudo , можно с помощью команды:

sudo -l -U test-user

В примере пользователь test-user может выполнять через sudo любые команды ( ALL:ALL — символизирует, что команды могут исполняться от имени любых пользователей и групп, третий аргумент символизирует список доступных команд — в примере ALL , не ограничен)

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

sudo groupadd newgroup

Для подтверждения система запросит ввести пароль текущего пользователя (символы при вводе пароля не отображаются — введите пароль «вслепую» или скопируйте и вставьте кликом правой кнопки мыши). После ввода команда будет отправлена на исполнение. Также в течение пяти следующих минут (по умолчанию) вы сможете запускать команды от имени суперпользователя без использования sudo и повторного ввода пароля.

Количество времени, которое действуют права суперпользователя после вызова sudo , можно изменить через настройки в /etc/sudoers . Запрос пароля можно отключить там же.

Если вам нужно выполнить сразу несколько операций с повышенными привилегиями, можно временно войти в режим суперпользователя:

sudo -s

С управлением пользователями разобрались, идём дальше. Как было сказано выше, чтобы локальный пользователь мог начать работу на сервере, администратор ( root или пользователь c привилегиями sudo ) должен настроить права доступа к файлам и папкам, которые понадобятся этому пользователю. Рассмотрим этот вопрос подробнее.

Пользователи в Linux

Linux — система многопользовательская, а потому пользователь — ключевое понятие для организации всей системы доступа в Linux. Когда пользователь регистрируется в системе (проходит процедуру авторизации, например, вводя системное имя и пароль), он идентифицируется с учётной записью, в которой система хранит информацию о каждом пользователе: его системное имя и некоторые другие сведения, необходимые для работы с ним. Именно с учётными записями, а не с самими пользователями, и работает система. Ниже приведён список этих сведений.

Системное имя (user name)

Это то имя, которое вводит пользователь в ответ на приглашение login: . Оно может содержать только латинские буквы и знак “ _ ”. Это имя используется также в качестве имени учётной записи.

Идентификатор пользователя (UID)

Linux связывает системное имя c идентификатором пользователя в системе — UID (User ID). UID — это положительное целое число, по которому система и отслеживает пользователей 1 . Обычно это число выбирается автоматически при регистрации учётной записи, однако оно не может быть совершенно произвольным. В Linux есть некоторые соглашения относительно того, каким типам пользователей могут быть выданы идентификаторы из того или иного диапазона. В частности, UID от “ 0 ” до “ 100 ” зарезервированы для псевдопользователей 2 .

Идентификатор группы (GID)

Кроме идентификационного номера пользователя с учётной записью связан идентификатор группы. Группы пользователей применяются для организации доступа нескольких пользователей к некоторым ресурсам. У группы, так же, как и у пользователя, есть имя и идентификационный номер — GID (Group ID). В Linux каждый пользователь должен принадлежать как минимум к одной группе — группе по умолчанию. При создании учётной записи пользователя обычно создаётся и группа, имя которой совпадает с системным именем 3 , именно эта группа будет использоваться как группа по умолчанию для этого пользователя. Пользователь может входить более чем в одну группу, но в учётной записи указывается только номер группы по умолчанию. Группы позволяют регулировать доступ нескольких пользователей к различным ресурсам.

Полное имя (full name)

Помимо системного имени в учётной записи содержится и полное имя (имя и фамилия) использующего данную учётную запись человека. Конечно, пользователь может указать что угодно в качестве своего имени и фамилии. Полное имя необходимо не столько системе, сколько людям — чтобы иметь возможность определить, кому принадлежит учётная запись.

Домашний каталог (home directory)

Файлы всех пользователей в Linux хранятся раздельно, у каждого пользователя есть собственный домашний каталог, в котором он может хранить свои данные. Доступ других пользователей к домашнему каталогу пользователя может быть ограничен. Информация о домашнем каталоге обязательно должна присутствовать в учётной записи, потому что именно с него начинает работу пользователь, зарегистрировавшийся в системе.

Начальная оболочка (login shell)

Важнейший способ взаимодействовать с системой Linux — командная строка, которая позволяет пользователю вести «диалог» с системой: передавать ей команды и получать её ответы. Для этой цели служит специальная программа — командная оболочка (или интерпретатор командной строки), по-английски — shell. Начальная оболочка (login shell) запускается при входе пользователя в систему в текстовом режиме (например, на виртуальной консоли). Поскольку в Linux доступно несколько разных командных оболочек, в учётной записи указано, какую из командных оболочек нужно запустить для данного пользователя. Если специально не указывать начальную оболочку при создании учётной записи, она будет назначена по умолчанию, вероятнее всего это будет bash.

Все перечисленные данные об учётных записях хранятся в файле /etc/passwd . Сведения о конкретной учётной записи пользователя можно получить с помощью утилиты getent 4 :

[tester@tacit tester]$ getent passwd tester tester:x:506:506:Test Testovitch:/home/tester:/bin/bash [tester@tacit tester]$

Пример 1. Сведения об учётной записи

Первый параметр, passwd — это название базы, в которой нужно производить поиск, оно совпадает с именем соответствующего конфигурационного файла. Второй параметр, tester — это название учётной записи пользователя (системное имя). getent выводит ту строчку /etc/passwd , где описана искомая учётная запись: в ней через “ : ” указаны системное имя, пароль (тут стоит буква “ x ”, потому что пароль спрятан в другом месте, об этом ниже), UID, GID, полное имя, домашний каталог и начальная оболочка.

В Linux пароль пользователя в явном виде не хранится нигде, но только в зашифрованном. В современных системах обычно применяются так называемые «теневые пароли» (shadow passwords), которые хранятся отдельно от остальных сведений об учётной записи, а также позволяют назначать дополнительные ограничения, в частности, «срок годности» пароля. В зависимости от строгости политики безопасности зашифрованные пароли пользователей могут храниться в общем файле /etc/shadow (менее строго) или в отдельном файле shadow для каждого пользователя. В ALT Linux по умолчанию используется схема tcb , реализующая более строгую политику. Для просмотра сведений из файла shadow требуются полномочия суперпользователя, это можно сделать с помощью команды getent passwd tester . Подробнее о возможностях теневых паролей можно прочитать в руководствах shadow(5) и tcb(5) .

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

[tester@tacit tester]$ getent group audio audio:x:81:yura,fedya [tester@tacit tester]$

Пример 2. Сведения о группе

Запись в файле /etc/group устроена очень просто: сначала идёт имя группы (как и имя учётной записи, потом поле для пароля (здесь опять “ х ”, но пароли для группы используются очень редко), GID, список через запятую названий учётных записей (имён пользователей), входящих в данную группу. Любой пользователь может получить список названий групп, в которых он состоит командой groups , а более подробные сведения о своей или чужой учётной записи командой id имя_пользователя . Принадлежность к группе существенна только в одном отношении — прав доступа, поскольку для каждого файла определён не только пользователь-владелец, но и группа-владелец.

Управление пользователями

Создание пользователей

  • создать запись в /etc/passwd , где присвоить учётной записи уникальное имя, UID и пр.;
  • создать домашний каталог пользователя, обеспечить пользователю доступ к его домашнему каталогу (сделать его владельцем каталога);
  • поместить в домашний каталог стандартное наполнение (обычно конфигурационные файлы), взятое из /etc/skel ;
  • модифицировать системные конфигурационные файлы, в частности, создать хранилище для приходящей почты для данного пользователя ( /var/spool/mail/tester ).

Все эти действия могут быть выполнены и вручную, однако это довольно неудобно и можно что-нибудь забыть. Для упрощения процесса используется утилита useradd (она же по традиции называется adduser ), для выполнения которой, естественно, потребуются полномочия администратора. В простейшем случае достаточно будет двух шагов:

root@tacit ~# useradd test root@tacit ~# passwd test passwd: updating all authentication tokens for user test. You can now choose the new password or passphrase. . . . Enter new password:

Пример 3. Создание пользователя

Сначала useradd добавляет учётную запись (имя пользователя — единственный параметр, в нашем примере — test ), заполняя её значениями по умолчанию и проводя все необходимые изменения в системе. С помощью дополнительных параметров при вызове useradd можно явно указать значение для того или иного поля учётной записи, также эта утилита позволяет модифицировать параметры создания пользователей по умолчанию. Подробности можно найти в руководстве useradd(8) . Утилита passwd , вызванная с правами суперпользователя, позволяет назначить данному пользователю любой пароль. При этом сведения о предшествующем пароле данного пользователя (если таковой был), будут полностью утрачены. passwd , вызванная обычным пользователем (без параметров), позволяет ему сменить свой собственный пароль, но для этого потребуется ввести текущий пароль пользователя.

Существуют аналогичные useradd утилиты для модификации параметров уже существующей учётной записи ( usermod ) и для удаления пользователей ( userdel ). Пользователь также может изменить некоторые некритичные сведения в своей учётной записи самостоятельно. В частности, для установки своего полного имени и некоторых других информационных полей учётной записи служит утилита chfn(1) из пакета shadow-change, сменить начальную оболочку поможет утилита chsh(1) (позволяет выбрать только одну из оболочек, перечисленных в /etc/shells ) из того же пакета. Обратите внимание, что в ALT Linux пользователь имеет право редактировать собственную учётную запись только в том случае, если установлен соответствующий режим доступа: команда control chsh должна возвращать public , аналогично control chfn . Установить нужный доступ может суперпользователь командой control chsh public (аналогично для chfn ).

Самую востребованную операцию по работе с группами — добавление пользователя в группу — проще всего выполнить простым редактированием файла /etc/group . Достаточно открыть этот файл в любом текстовом редакторе (естественно, с правами суперпользователя), найти строчку, начинающуюся с названия нужной группы, и добавить в конец этой строки имя нужного пользователя через запятую). Для управления группами существует комплект утилит groupadd(8) , groupdel(8) , groupmod(8) , подробности о работе с ними можно найти в соответствующих руководствах.

1Это может оказаться важным, например, в такой ситуации: учётную запись пользователя с именем test удалили из системы, а потом добавили снова. Однако с точки зрения системы это уже другой пользователь, потому что у него другой UID.

2Обычно Linux выдаёт нормальным пользователям UID, начиная с “ 500 ” или “ 1000 ”.

3Как правило, численное значение GID в этом случае совпадает со значением UID.

4Эта утилита также полезна для получения сведений о некоторых других системных ресурсах, см. getent —help .

Описание команды NET USER

Команда NET USER предназначена для добавления, редактирования или просмотра учетных записей пользователей на компьютерах. При выполнении команды в командной строке без параметров отображается список учетных записей пользователей Windows, присутствующих на компьютере (эта команда также хорошо работает и в Windows 10). Информация об учетных записях пользователей хранится в базе данных Windows.

Возможности команды Net User

Давайте перечислим какие операции мы можем сделать с помощью команды Net User

  1. Добавить учетную запись;
  2. Добавить пароль учетной записи;
  3. Изменить пароль учетной записи;
  4. Отключить учетную запись;
  5. Удалить учетную запись.

Видео — Полное ознакомление с NET USER (примеры, вопросы на ответы)

Синтаксис команды NET USER

net user [имя_пользователя [пароль | *] [параметры]] [/domain]

net user имя_пользователя /add [параметры] [/domain]

net user имя_пользователя [/delete] [/domain], где

  • имя_пользователя — Указывает имя учётной записи пользователя, которую можно добавить, удалить, отредактировать или просмотреть. Имя может иметь длину до 20 символов.
  • пароль — Присваивает или изменяет пароль пользователя. Введите звездочку (*) для вывода приглашения на ввод пароля. При вводе с клавиатуры символы пароля не выводятся на экран.
  • /domain — Выполняет операцию на контроллере основного для данного компьютера домена.
  • параметры — Задает параметр командной строки для команды.
  • net help команда — Отображение справки для указанной команды net.
  • /delete — Удаление учетной записи пользователя.

Примеры команды NET USER

  • Для вывода списка всех пользователей данного компьютера служит команда: net user;
  • Для добавления учетной записи пользователя User1 с полным именем пользователя и паролем 123 используется следующая команда: net user User1 123 /add /fullname:»User1 » /comment:»Для тестов»;
  • Для вывода информации о пользователе » User1″ служит следующая команда: net user User1;
  • Для изменения пароля пользователя User1 на пароль 890 служит команда net user User1 890;
  • Для отключения учетной записи необходимо ввести команду: net user User1 /active:no;
  • Для удаления учетной записи необходимо ввести команду: net user User1 /delete.

Вопросы от подписчиков и примеры использования Net User

  1. Как включить встроенную учетную запись Администратора? Как получить права администратора в Windows? Для этого нужно ввести команду — net user администратор /active:yes и учетная запись Администратор будет включена (по умолчанию в системе эта учетная запись отключена);
  2. Как создать с помощью net user пользователя с правами администратора? Заранее скажу, используя дополнительно команду Net Localgroup можно добавлять учетные записи в нужную группу – Администраторы, Опытные пользователи или просто в группу Пользователи;
  3. Net user сменить пароль, net user изменить пароль, net user имя_пользователя сделать новый_пароль – эти все моменты мы показали net user User1 890;
  4. Net user отказано в доступе, net user команда выполнена с ошибками. Так, уважаемый пользователь все дело в правах, если вы запускаете командную строку без административных прав (т.е. под обычным пользователем), консоль выведет ошибку;
  5. Net user не найдено имя пользователя – тут еще проще, в системе нету такого пользователя, т.е. скорее всего логин написан с ошибками;
  6. Net user как сделать пустой пароль — Чтобы скинуть пароль пользователя на пустой введем команду net user User1 «»;
  7. Net user как переименовать пользователя? Очень интересный вопрос! Командой net user переименовать не получится, но мы предлагаем вам воспользоваться командой — wmic useraccount where name=’currentname’ rename newname.

Дополнительные параметы команды NET USER

Также рекомендуем ознакомиться с дополнительными параметрами команды Net User:

net user

  • /active: — Активирует или деактивирует учетную запись. Если учетная запись не активирована, пользователь не может получить доступ к серверу. По умолчанию учетная запись активирована.
  • /comment:»текст» — Позволяет добавить описание учетной записи пользователя
  • /countrycode:nnn — Использует код страны, указанный для операционной системы, для реализации соответствующих языковых файлов
  • /expires: — Дата истечения срока действия учетной записи. Значение never соответствует неограниченному сроку действия.
  • /fullname:»имя» — Полное имя пользователя (в отличии от имени учетной записи пользователя).
  • /homedir:путь — Указывает путь к домашнему каталогу пользователя. Указанное место должно существовать.
  • /passwordchg: — Указывает, может ли пользователь изменять свой пароль (по умолчанию может).
  • /passwordreq: — Указывает, должна ли учетная запись пользователя иметь пароль (по умолчанию должна).
  • /profilepath[:путь] — Указывает путь к профилю входа в систему пользователя.
  • /scriptpath:путь — Путь к сценарию, используемому пользователем для входа в систему.
  • /times: — Время для входа в систему. Параметр время указывается в формате день[-день][,день[-день]],час [-час][,час [-час]], причем приращение равняется 1 часу. Название дней недели могут указываться полностью или в сокращенном виде. Часы могут указываться в 12- или 24-часовом представлении. Для 12-часового представления используются обозначения am, pm, a.m. или p.m. Значение all соответствует отсутствию ограничений на время входа в систему, а пустое значение обозначает полный запрет на вход в систему.
  • /usercomment:»текст» — Позволяет администратору добавить или изменить комментарий к учетной записи.
  • /workstations: <имя_компьютера[. ] | *>— Позволяет указать до 8 компьютеров, с которых пользователь может войти в сеть. Если для параметра/workstations не указан список компьютеров или указано значение *, пользователь может войти в сеть с любого компьютера.

Рекомендуем для просмотра:

  • CACLS — управление доступом к файлам — 06/07/2010 04:19
  • NET LOCALGROUP — управление локальными группами компьютера — 06/07/2010 04:16
  • NET ACCOUNTS — учетные данные пользователей — 06/07/2010 04:12

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *