- Пользователи в Linux
- Управление пользователями
- Управление группами
- Конфигурация пользователей
Пользователи в Linux
Пользователь - этот механизм придуман для разграничения доступа в Linux. Пользователь обладает некоторыми правами для работы в ОС. Определенные файлы, параметры и процессы можно запускать только от пользователей с необходимыми правами. При входе в систему пользователя запускается его оболочка. Группы - данным методом пользователей объединяют логически. Помимо основной группы пользователь может быть участником вторичных групп.
Обозначение группы - GID. Обозначение пользователя - UID. В данном параметре можно видеть число, которое использует сама система, в то время как имена придумали для удобства человека.
- /etc/passwd — файл, устанавливающий связь между UID и именами пользователей;
- /etc/group — файл, устанавливающий связь между GID и именами групп.
Управление пользователями
В Linux присутствуют разные группы UID. 0 <= UID <= 499 — системные UID, для системных аккаунтов. UID=0 — root. 500 <= UID <= 65000 — пользовательские UID. Данную пользовательскую информацию можно найти в следующих файлах - /etc/passwd и /etc/shadow.
getent passwd <Пользователь>
Поиск passwd-информации по указанному пользователю по всем подключенным источником. Запись типа passwd имеет определенный формат.
<Имя>:x:<UID>:<GID>:<GECOS>:<Домашний каталог>:<Оболочка>
root:x:0:0:root:/root:/bin/bash
- Имя - Имя пользователя, для входа в систему.
- x - Резерв.
- UID - UID пользователя.
- GID - GID основной группы. Используется как «хозяйская» при создании файлов.
- GECOS - Описательное поле пользователя.
- Домашний каталог - Домашняя директория пользователя.
- Оболочка - Оболочка пользователя.
Создавать пользователей может только супер пользователю root. Создание пользователя подразумевает установку имени, домашнего каталога и оболочки. Также обязательным является пароль пользователя. Далее разбирается работа useradd в ОС CentOS 7.
useradd <Имя>
- Создается пользователь с первым свободным UID;
- Создается группа с аналогичным именем, GID=UID;
- Устанавливает GID главной группы в виде созданной группы;
- Создается домашняя директория в каталоге /home/, аналогичная по имени;
- Копируется файлы из каталога /etc/skel в созданную домашнюю директорию;
В Debian утилиты ведет себя иначе:
- Создается пользователь с первым свободным UID, создается группа пользователя с аналогичным именем и ID;
- Домашняя директория не создается;
- Оболочка по-умолчанию не дается;
Для разрешения данных проблем используются ключи команды useradd.
-s <Путь> Полный путь к оболочке.
-m -d <Путь> Создать домашний каталог по заданному пути.
-k <Путь> Взять skel-наполнение из данного пути.
За работу с паролями отвечает модуль shadow. Обеспечивает создание, хранение, устаревание паролей. Используются файлы /etc/shadow и /etc/gshadow.
passwd
passwd <Пользователь>
Смена пароля текущего/другого пользователя. Смена пароля другого пользователя доступна только root.
Удаление пользователей реализуется утилитой userdel.
userdel <Пользователь>
Удаление пользователя, выполняется пользователем root. Нельзя удалить пользователя, который работает в системе, для удаления домашнего каталога и локальной почты используется ключ -r.
Управление группами
Группы могут объединять множество пользователей. У пользователей может быть главная и вторичная группа. GID главной группы указывается в /etc/passwd, членство во вторичных группах перечисляются в /etc/group. По-умолчанию каждый пользователь получает в качестве главной группу, совпадающую по имени с именем пользователя. Формат записи /etc/group
имеет следующий вид:
<Имя>:x:<GID>:<Пользователи>
Имя группы задается при её создании, поле «х» зарезервировано, пароли групп хранятся в /etc/gshadow, перечисление пользователей реализуется через запятую без пробелов.
Создание группы реализуется утилитой groupadd:
groupadd <Имя группы>
Создается группа со следующим доступным GID, начиная от 500.
Добавление пользователя в группы осуществляется с помощью утилиты usermod.
usermod <Пользователь> -g <Группа> - Установить группу в качестве главной группы пользователя.
usermod <Пользователь> -G <Группа1> <Группа2>,<Группа3>,... - Заменить(старый будет полностью удален) список вторичных групп пользователя. Перечисление через запятую без пробелов.
Зачастую возникает ситуация, когда необходимо создать файл, группой-хозяйкой которого будет другая, не основная группа пользователя. Применение chgrp на каждый файл может быть неэффективным. Для смены текущей главной группы используется команда newgrp:
newgrp <Группа>
Команда стартует новую оболочку с измененной главной группой процесса. Возможен переход только в те группы, членом которых является пользователь. Для реализации более гибкой политики смены текущей главной группы используются групповые пароли. Пользователь, знающий пароль группы, может установить группу в качестве главной. Пользователи, являющиеся членами группы, пароль не вводят. newgrp не работает на группы без пароля(для пользователей, не являющихся членами данных групп).
gpasswd <Группа>
Смена пароля группы.
Удаление групп производится после удаления всех вторичных членов из неё. Группа не должна быть главной ни у одного пользователя.
groupdel <Группа>
Удаление группы, при соблюдении условий.
Конфигурация пользователей
Пользовательские аккаунты имеют разные дополнительные механики — устаревание, блокировка и т. п. В основном механики связаны с парольной компонентой и реализуются с помощью модуля shadow.
Блокирование аккаунта может быть реализовано путем замены рабочей оболочки пользователя — эффективный способ блокирования системных аккаунтов. Существует два основных способа блокировка аккаунта через замену оболочки:
/bin/false — установленная в качестве оболочки немедленно вернет false и завершит сеанс при попытке его запустить. Никаких предупреждений не выводится;
/sbin/nologin — более информативная заглушка, выводящая сообщение /etc/nologin.txt вместо стандартного сообщения. Подходит для изоляции пользовательских аккаунтов.
- Для информирования пользователей используется файл /etc/motd — данный файл выводится на экран при запуске оболочки входа пользователя. Если в домашнем каталоге пользователя присутствует файл ~/.hushlogin — вход будет реализован максимально «тихо»:
- Не проверяется локальная почта;
- Не выводится /etc/motd;
- Не выводится информация о предыдущем входе.
Подсистема shadow отвечает за менеджмент паролей и, как следствие, менеджмент аккаунтов. Через управление механиками паролей — устаревание, блокировка и т. п. - можно управлять аккаунтами пользователей. Формат записи shadow представлен ниже:
<Имя>:<Пароль>:<A>:<B>:<C>:<D>:<E>:<F>
- Имя - Имя пользователя.
- Пароль - Пароль пользователя в хэшированном виде
- A - Дата (количество дней с 1.1.1970) последнего изменения пароля
- B - Минимальное время смены пароля.
- C - Максимальное время смены пароля.
- D - Количество дней, когда будут выдаваться предупреждения о скором устаревании пароля.
- E - Количество дней после устаревания пароля, в течение которых можно работать при условии смены пароля при входе.
- F - Дата(кол-во дней) блокировки пароля.
Для работы с паролями применяется утилита chage:
chage <Параметр> <Значение> <Пользователь>
- -l <Пользователь> Вывод параметров для данного пользователя.
- -m <Число> <Пользователь> Минимальный период смены пароля.
- -M <Число> <Пользователь> Максимальный период смены пароля.
- -E <Дата> <Пользователь> Дата отключения аккаунта (ГГГГ-ММ-ДД).
- -h Справка по команде.