Создание и администрирование пользователей в ОС 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 – количество дней от 1.01.1970 и последнего дня смены пароля
  • min – минимальное число дней между сменами пароля
  • max – максимальное число дней, в течении которых пароль будет валиден
  • warn – количество дней за которые пользователь будет предупрежден об истечении пароля
  • inactive – количество дней, в течении которых пользователь может быть неактивен перед блокировкой
  • expire – дата, когда истекает срок пользовательской учетной записи
  • flag – количество неуспешных попыток входа

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

 

Структура файла /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 цифру. Также пользователь самостоятельно может сменить пароль запускаю команду password.

Проверим, появилась ли соответствующая запись в файле /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

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

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

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

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

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

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

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

Однако три параметра, влияющих на срок истечения пароля – 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 имеет два типа файлов инициализации – системные и пользовательские. Системные файлы позволяют администратору предоставлять пользователям новый функционал в их рабочей среде. Пользовательские файлы инициализации позволяют и администраторам и самим пользователям менять пользовательскую рабочую среду. Администратор ответственен за системные инит.файлы. Системных файлов всего два, и они предоставляют среды для всех пользователей системы – это /etc/profile и /etc/.login. Для корректировки и работы с этими файлами используется любой текстовый редактор. Пользовательские инит.файлы могут быть изменены самими пользователями. Этими файлами являются .bash_profile и .bash_login, расположенные непосредственно в рабочей директории пользователя (.profile для sh и ksh93). Шаблоны пользовательских инит.файлов находятся в папке /etc/skel. Могут изменяться администраторами для создания стандартных рабочих сред пользователям. Файлы, помещенные в папку /etc/skel, появятся в домашней директории пользователей – как новых, так и тех, которые будут созданы. Для примера добавим т.н. алиас – сокращение для удобного вызова команд. Например, чтобы постоянно не писать ls –l, можно использовать для этого алиас ll. Для добавления алиаса необходимо отредактировать файл .profile в домашней директории пользователя, добавив туда соответствующую строку – alias ll=’ls -l’. Таким образом, мы привязали команду ls –l к сокращенному виду ll. Выполним команду su – username, чтобы настройки среды загрузились заново, и попробуем выполнить команду.

Leave a Reply

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