Создание и администрирование пользователей в ОС Solaris 11

Создание и администрирование пользователей в ОС Solaris 11

В посте рассматривается создание и администрирование пользователей в операционной системе (ОС) Solaris 11. Рассмотрены следующие вопросы:

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

 

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

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

  • Пользователь – индивидуальная учетная запись, представляющая уникальное имя, пользовательский идентификационный номер (UID), домашнюю директорию и командную оболочку.
  • Группа – множество индивидуальных пользователей, которые разделяют общий набор прав на файлы и другие системные ресурсы.
  • Роль – специальная учетная запись, привязанная к одному или более пользователям, и предоставляющая набор функций и прав, специфичных для этой роли.

Под ролью невозможно войти в ОС. Например, если требуется использовать роль test, то первоначально необходимо войти в ОС под какой-либо учетной записью, а потом переключиться на роль командой su – test. Команда su (switch user) – предназначена для смены пользователя. Например, выполнение команды su dushanbe, позволяет войти в ОС под пользователем dushanbe. Если же нужно сменить не только пользователя, но и все пользовательское окружение, то выполняется команда su – dushanbe. Например, система под пользователем dushanbe находится в директории /tmp.

bash-4.1$ whoami
dushanbe
bash-4.1$ pwd
/tmp

Если меняется пользователь на root командой su, то окружение пользователя root не загружается. В примере, система останется в папке /tmp. Но если используется команда su – , то загружается и окружение пользователя root, в том числе и его домашняя директория:

bash-4.1$ su root
Password:
#pwd
/tmp
bash-4.1$ su - root
Password:
Oracle Corporation SunOS 5.11 11.3 September 2015
root@machine:~#pwd
/root

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

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

  • /etc/passwd – содержит учетные записи и данные о них (доступ на чтение и изменение файла имеет root, остальные пользователи имеют доступ только на чтение).
  • /etc/shadow – содержит пароли в зашифрованном виде (доступ на чтение файла имеет root, остальные пользователи не имеют никакого доступа).
  • /etc/default/passwd – содержит информацию для контроля свойств всех пользовательских паролей (доступ на чтение и изменение файла имеет root, остальные пользователи имеют доступ только на чтение).
  • /etc/group – содержит информацию о группах (доступ на чтение и изменение файла имеет root, остальные пользователи имеют доступ только на чтение).

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

Файл /etc/passwd

Структура записи файла следующая:

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

где,

  • loginID – поле имени пользователя (имя должно быть уникальным и состоять максимум из 8 символов – букв (A-Z, a-z) и/или чисел (0-9). Первым символом должна быть буква и, как минимум, один символ должен быть буквой в нижнем регистре).
  • x – плейсхолдер зашифрованного пароля, хранящегося в файле /etc/shadow.
  • UID – номер, использующийся системой для идентификации пользователя (UID обычных пользователей должны иметь диапазон от 100 до 60000. Все UID должны быть уникальными).
  • GID – номер, использующийся системой для идентификации основной группы пользователя.
  • comment – комментарий (обычно содержит полное имя пользователя).
  • home_directory – полный путь к пользовательской домашней директории (в данной директории хранятся конфигурационные файлы пользователя).
  • login_shell – пользовательская командная оболочка.

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

Файл /etc/shadow

Структура записи файла следующая:

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

где,

  • loginID – имя пользователя.
  • password – может содержать: 13-символьный зашифрованный пароль (по умолчанию пароли хэшируются алгоритмом SHA256); символы *LK*, означающие, что учетная запись недоступна; символы NP, означающие, что учетная запись не имеет пароля.
  • lastchg – количество дней от 01.01.1970 до последнего дня смены пароля.
  • min – минимальное число дней между сменами пароля.
  • max – максимальное число дней, в течение которых пароль будет валиден.
  • warn – количество дней, за которые пользователь будет предупрежден об истечении срока пароля.
  • inactive – количество дней, в течение которых пользователь может быть неактивен перед блокировкой.
  • expire – дата окончания срока пользовательской учетной записи.
  • flag – количество неуспешных попыток входа.

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

Файл /etc/default/passwd

Это файл настроек сложности пароля. Примеры с этим файлом приведены ниже.

Файл /etc/group

Структура записи файла следующая:

groupname:group-password:GID:username-list

где,

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

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

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

Добавление новой пользовательской учетной записи выполняется командой useradd под пользователем root. Пример добавления пользователя с именем dushanbe:

#useradd dushanbe

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

# grep dushanbe /etc/passwd

dushanbe:x:100:10::/export/home/dushanbe:/usr/bin/bash

Пароль пользователю dushanbe задается командой passwd:

#passwd dushanbe

Появится приглашение ввести новый пароль. Новый пароль должен соответствовать требованиям безопасности ОС Solaris – длина не менее 6 символов, содержать минимум 1 букву и 1 цифру.  Пользователь самостоятельно может сменить пароль командой passwd.

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

#grep dushanbe /etc/shadow

dushanbe:$5$O008fax6$/kn5Y/klxYxwWjZqtVW1A7hX7ZniYjLRax5/itPhk4/:17902::::::

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

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

#usermod –l test dushanbe

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

#grep test /etc/passwd

test:x:100:10::/export/home/test:/usr/bin/bash

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

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

#userdel –r test

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

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

#groupadd grp1

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

#grep grp1 /etc/group

grp1::102:

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

Производится командой groupmod. Пример изменения имени группы grp1 на grp2:

#groupmod –n grp2 grp1

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

#grep grp2 /etc/group

grp2::102:

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

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

Проверка файла /etc/group на наличие группы testgrp (до удаления группы):

Удаление группы командой:

#groupdel testgrp

Проверка файла /etc/group на отсутствие удаленной группы testgrp (после удаления):

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

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

usermod –G -groupname username – удаление учетной записи из группы

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

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

Дополнительные настройки учетных записей

Файл /etc/default/passwd контролирует пароли всех пользователей системы, в этом файле задаются параметры, которым пароли всех пользователей должны соответствовать. Например, параметр MAXWEEKS определяет в течение какого периода пароль будет валиден/активен (число указывается в неделях). Пустое место, как на скриншоте, означает, что пароль будет валиден постоянно).

Однако три параметра, влияющих на срок истечения пароля – MAXWEEKS, MINWEEKS, WARNWEEKS – могут быть заданы в файле /etc/shadow. В таком случае, эти параметры в файле /etc/default/passwd примут такое же значение, как и для отдельных пользователей, так как значения в файле /etc/shadow более приоритетны.

Команда useradd  –D

Команда useradd  –D создает файл, содержащий значения по умолчанию для новых пользовательских учетных записей. Первоначально проверяется, существует ли подобный файл командой ls /usr/sadm/defadduser и в случае его отсутствия выполняется команда useradd –D. Далее можно изменять значения в этом файле командой useradd –D value (например, useradd –D –s /bin/ksh изменит пользовательскую командную оболочку с дефолтной /usr/bin/bash на /bin/ksh).

Init files

Файл инициализации — специальный текстовый файл, используемый при загрузке среды и отдельных программ для начальной установки параметров. ОС Solaris 11 имеет два типа файлов инициализации – системные и пользовательские. Системные файлы позволяют администратору предоставлять пользователям новый функционал в их рабочей среде. Пользовательские файлы инициализации позволяют и администраторам и самим пользователям менять пользовательскую рабочую среду. Администратор ответственен за системные инициализационные файлы (инит.файлы – анг. init files). Системных файлов всего два, и они предоставляют среды для всех пользователей системы – это /etc/profile и /etc/.login. Для корректировки и работы с этими файлами используется любой текстовый редактор. Пользовательские инит.файлы могут быть изменены самими пользователями. Этими файлами являются .bash_profile и .bash_login, расположенные непосредственно в домашней директории пользователя (.profile для sh и ksh93). Шаблоны пользовательских инит.файлов находятся в папке /etc/skel. Они могут изменяться администраторами для создания стандартных рабочих сред пользователям.

Пример добавления алиаса – сокращения для удобного вызова команд. Например, чтобы постоянно не писать ls –l, можно использовать для этого алиас ll. Для добавления алиаса редактируется файл .profile в домашней директории пользователя – добавляется соответствующая строка – alias ll=’ls -l’. Выполняется команда su – username, чтобы настройки среды загрузились заново, и выполняется команда (алиас ll).

Leave a Reply

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