Создание и администрирование пользователей в ОС на базе ядра Linux

Создание и администрирование пользователей в ОС на базе ядра Linux

В данном посте рассматривается создание и администрирование пользователей в операционных системах (ОС) на базе ядра Linux. Для примера будет использоваться ОС Oracle Linux 7.5. Будут рассмотрены следующие вопросы:

  • Типы пользователей
  • Основные файлы, хранящие информацию о пользовательских учетных записях
  • Администрирование (управление) учетными записями

 

Типы пользователей

Oracle Linux является многопользовательской ОС. Одной из основных задач системного администратора является создание, управление, удаление учетных записей. Системный администратор должен всегда знать и понимать, какие учетные записи есть в ОС, в какой группе состоит пользователь, а также к каким системный ресурсам имеет доступ пользователь и группа. В Unix и Linux системах владельцем каждого файла и программы должен быть пользователь (user). Каждый пользователь имеет уникальный идентификатор называемый UID – user ID. Каждый пользователь должен состоять минимум в одной группе, но есть возможность добавить пользователя во множество групп. Так же как и у пользователя, группа имеет уникальный идентификатор группы называемый GID – group ID.

В Linux есть три типа пользовательских учетных записей – root (суперпользователь), системные и пользовательские.

  • root (суперпользователь) – учетная запись, имеющая полный контроль над системой. Суперпользователь может запускать любую команду без каких-либо ограничений;
  • системные – эти учетные записи нужны для операций над системными компонентами, например для почтовых или sshd учетных записей. Эти учетные записи обычно нужны для выполнения каких-либо конкретных функций в системе, и потому не модифицируются;
  • пользовательские – учетные записи этого типа предоставляют доступ к системе для пользователей. Обычные пользователи имеют именно этот тип учетной записи, что ограничивает их доступ к критично важным системным файлам и папкам.

 

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

Основные параметры пользовательской учетной записи это: Имя, пароль, UID, GID, Комментарий, Домашняя директория, командная оболочка.

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

  • /etc/passwd– Содержит информацию об учетной записи и пароле. Это основной файл, содержащий информацию об учетных записях.
  • /etc/shadow– Содержит пароли в зашифрованном виде (SHA-512) для соответствующей учетной записи.
  • /etc/group– Содержит информацию о группах для каждой учетной записи.
  • /etc/gshadow– Содержит информацию, касающуюся безопасности групп.

Далее подробно рассмотрим каждый файл и его содержимое.

/etc/passwdв этом файле находятся записи в следующем виде:

loginID:x:UID:GID:comment:home_directory:login_shell

где,

  • loginID – имя пользователя (Имя должно быть уникальным и состоять максимум из 32 символов (любые, кроме двоеточия [:] и символа новой строки [\n] )).
  • x – плейсхолдер для зашифрованного пароля хранящегося в файле /etc/shadow.
  • UID – номер, использующийся системой, для идентификации пользователя (UID для обычных пользователей должны иметь диапазон от 100 до 2^32-1).
  • GID – номер, использующийся системой, для идентификации основной группы пользователя.
  • comment (GECOS) – комментарий, обычно содержит полное имя пользователя.
  • home_directory – полный путь к пользовательской домашней директории. В данной директории хранятся конфигурационные файлы пользователя.
  • login_shell – пользовательское командная оболочка.

После установки ОС файл /etc/passwd выглядит (по умолчанию) как на скриншоте:

В файле /etc/shadow находятся записи в следующем виде:

loginID:password:lastchg:min:max:warn:inactive:expire

где,

  • loginID – имя пользователя,
  • password – пароль в зашифрованном виде. Пароль должен минимум в 8 символов длиной, включая спецсимволы, цифры, и буквы. Обычно формат пароля $id$salt$hashed, где $id – алгоритм, которым шифруется пароль ($1$ is MD5, $2a$ is Blowfish, $2y$ is Blowfish, $5$ is SHA-256, $6$ is SHA-512).
  • lastchg – количество дней c 1.01.1970, когда пароль был изменен в последний раз.
  • min – минимальное число дней между сменами пароля
  • max – максимальное число дней, в течении которых пароль будет валиден
  • warn – количество дней за которые пользователь будет предупрежден об истечении пароля
  • inactive – количество дней, в течении которых пользователь может быть неактивен перед блокировкой
  • expire – дата, когда истекает срок пользовательской учетной записи

Скриншот файла /etc/shadow

Структура файла /etc/group следующая:

groupname:group-password:GID:username-list

где,

  • groupname – имя группы (максимум 8 символов);
  • group-password – пустое поле или звездочка;
  • GID – идентификатор группы;
  • username-list – список пользователей, для которых данная группа является вторичной.

 

Структура файла /etc/gshadow следующая:

groupname:encrypted-password:group-admins:group-users

где,

  • groupname – имя группы;
  • encrypted-password — зашифрованный пароль группы. Если задан, то пользователи, не являющиеся членами группы, могут присоединиться к группе введя пароль этой группы используя команду newgrp. Если значение этого поля равно !, то пользователи не смогут присоединиться к группе командой newgrp. Значение !! означает то же самое, что и !!, однако еще обозначает то, что пароль еще не был задан. Если значение пусто – в группу могут логиниться только члены группы;
  • group-admins — члены группы, перечисленные в этом поле, могу добавлять или убирать членов группы используя команду gpasswd;
  • group members — члены группы, перечисленные в этом поле, являются обычными пользователями данной группы.

 

Администрирование (управление) учетными записями

Добавление пользователей

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

#useradd dushanbe

Проверим, появилась ли соответствующая запись в файле /etc/passwd:

# grep dushanbe /etc/passwd

dushanbe:x:1002:1002::/home/dushanbe:/bin/bash

Зададим пароль пользователю dushanbe командой passwd:

#passwd dushanbe

Далее появится приглашение ввести новый пароль.

Проверим, появилась ли соответствующая запись в файле /etc/shadow:

#grep dushanbe /etc/shadow

dushanbe:$6$Ubm.y9XK$az3jtXXCDVy.c4YPxgQbqsWdXTFhhQXCIsWtKMz6jAMCJ5rS9Gj.j3GxgDOSOzqJQ.sUlhbch8JuC8jgEYlaH1:18012:0:99999:7:::

 

Модификация пользователей

Для модификации пользователей используется команда usermod. Попробуем изменить имя пользователя dushanbe на test с помощью команды usermod и опции –l.

# usermod --login test dushanbe

Проверим, изменилась ли соответствующая запись в файле /etc/passwd:

#grep test /etc/passwd

test:x:1002:1002::/home/dushanbe:/bin/bash

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

Для удаления пользователей используется команда userdel (опция –r так же удалит домашнюю директорию пользователя).

#userdel –r test

 

Добавление группы

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

#groupadd testgrp

Проверим, появилась ли соответствующая запись в файле /etc/group:

#grep testgrp /etc/group

testgrp:x:1003:

 

Модификация группы

Производится командой groupmod. Сменим имя группе testgrp на testg:

#groupmod –n testg testgrp

Проверим, изменилась ли соответствующая запись в файле /etc/group:

#grep testg /etc/group

testg:x:1003:

Удаление группы

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

#groupdel testg

Добавление/удаление учетной записи в группу

usermod –G groupname username – добавить учетную запись в группу;

gpasswd –d username groupname – удалить учетную запись из группы.

В примере проверим файл /etc/group на наличие группы dushanbe и добавим в эту группу пользователя molly. Проверим файл еще раз, и затем – удалим пользователя из группы. Снова проверяем файл, чтобы убедиться в правильности выполнения команды:

Leave a Reply

Your email address will not be published. Required fields are marked *