Создание и администрирование пользователей в ОС 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).