Группы пользователей в Linux: создаем группы, добавляем и удаляем из них пользователей
Перевод статьи «Linux User Groups Explained: How to add a new group, a new group member, and change groups».
Linux позволяет многочисленным пользователям работать в системе одновременно. Установка прав доступа защищает пользователей друг от друга. Для объединения пользователей с одинаковыми правами доступа создаются группы. Члены этих групп могут, например, иметь доступ к каким-то файлам или устройствам, в то время как для остальных пользователей доступ будет закрыт.
Часто группы создаются, чтобы дать отдельным пользователям право модифицировать файл или директорию.
Группы бывают двух основных видов: первичные и вторичные. Первичная группа это основная группа пользователя, установленная для него по умолчанию, с ней связан его аккаунт. Директории и файлы, создаваемые пользователем, имеют Group ID именно этой, первичной группы. Любая другая группа (а их может быть много), в которую входит пользователь, является вторичной.
Создание групп
Давайте создадим две группы: «writers» («писатели») и «editors» («редакторы»). Для этого используется команда groupadd. (Возможно, потребуется также поставить sudo в начале команды, чтобы получить право создавать группы).
groupadd writers groupadd editors
Создание пользователей
Возможно, у вас уже есть пользователи, которых вы могли бы добавить в только что созданные группы. Если нет, вот базовый синтаксис для создания пользователя при помощи команды useradd:
useradd [опции] имя_пользователя
Ниже представлена команда для создания пользователя по имени «quincy». Флаг -m нужен для создания домашней директории пользователя (для ее названия используется имя пользователя). Флаг -p позволяет задать пароль для пользователя, в данном случае — «p4ssw0rd».
useradd -m quincy -p p4ssw0rd
Позже пользователь сможет изменить свой пароль при помощи команды passwd. Для этого ему понадобится ввести текущий пароль и новый.
Добавление пользователя в группу
Для добавления пользователя в группу используется команда usermod. Давайте добавим пользователя «quincy» в группу «writers». Опция -a означает «append» («добавить», «прикрепить»), а опция -G служит для указания названия вторичной группы.
usermod -a -G writers quincy
Когда вы создаете пользователя при помощи команды adduser, для него автоматически создается первичная группа, носящая его имя. Поэтому в настоящее время пользователь «quincy» состоит в первичной группе «quincy» и вторичной «writers».
Также можно добавить пользователя сразу в несколько групп, перечислив их через запятую без пробелов (-G group1,group2,group3).
А эта команда изменит первичную группу пользователя quincy на группу «editors»:
usermod -g editors quincy
Удаление пользователя из вторичной группы
Чтобы удалить пользователя из вторичной группы, нужно перезаписать список групп пользователя, задав набор групп, в котором не будет этой вторичной группы.
При помощи команды id смотрим, в каких группах состоит пользователь (опция -n нужна для вывода названий групп, а не их ID).
id -nG quincy
Предположим, мы увидели, что пользователь quincy состоит в группах «editors» и «writers». Если мы хотим удалить его из группы «writers», мы можем воспользоваться следующей командой:
usermod -G editors quincy
Эта команда очень похожа на ту, которой мы установили для пользователя quincy вторичную группу «editors». Но поскольку мы сейчас не использовали флаг -a, предыдущий список групп просто перезаписался, и теперь в нем нет группы «writers».
Заключение
Теперь вы можете начать управлять группами и пользователями. Следующий шаг — определить, какие привилегии должны быть у каждой группы.