Группы Linux — это организационные единицы, которые используются для организации и администрирования учетных записей пользователей в Linux. Основная цель групп — определить набор привилегий, таких как разрешение на чтение, запись или выполнение для данного ресурса, которые могут быть разделены между пользователями в группе.

В операционных системах Linux существует два типа групп:

Основная группа — когда пользователь создает файл, группа файла устанавливается в основную группу пользователя. Обычно имя группы совпадает с именем пользователя. Информация о первичной группе пользователя хранится в /etc/passwd файле.

Вторичная или дополнительная группа . Полезно, если вы хотите предоставить определенные права доступа к файлам группе пользователей, являющихся членами группы. Например, если вы добавите определенного пользователя в группу docker, этот пользователь унаследует права доступа группы и сможет выполнять команды docker.

Каждый пользователь может принадлежать ровно к одной основной группе и к нулю или нескольким дополнительным группам.

Только root или пользователи с sudo доступом могут добавить пользователя в группу.

Как добавить существующего пользователя в группу

Чтобы добавить существующего пользователя во вторичную группу, используйте usermod -a -G команду после имени группы и пользователя:

sudo usermod -a -G groupname username

Например, чтобы добавить пользователя unetwayв sudoгруппу, выполните следующую команду:

sudo usermod -a -G sudo unetway

Всегда используйте -aопцию (добавить) при добавлении пользователя в новую группу. Если вы опустите этот -aпараметр, пользователь будет удален из всех групп, не перечисленных после этого -Gпараметра.

В случае успеха usermodкоманда не отображает никаких выходных данных. Он предупреждает вас, только если пользователь или группа не существует.

Как добавить существующего пользователя в несколько групп одной командой

Если вы хотите добавить существующего пользователя в несколько дополнительных групп с помощью одной команды, используйте usermodкоманду, за которой следует -Gимя параметра группы, разделенное ,(запятыми):

sudo usermod -a -G group1,group2 username

Как удалить пользователя из группы

Чтобы удалить пользователя из группы, используйте gpasswdкоманду с -dопцией.

В следующем примере мы удаляем пользователя usernameиз группы groupname:

sudo gpasswd -d username groupname

Как создать группу

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

sudo groupadd groupname

Как удалить группу

Чтобы удалить существующую группу, используйте groupdel команду, за которой следует имя группы:

sudo groupdel groupname

Как изменить основную группу пользователя

Чтобы изменить основную группу пользователей, используйте usermodкоманду, за которой следует -gпараметр:

sudo usermod -g groupname username

В следующем примере мы меняем основную группу пользователя unetway на dev:

sudo usermod -g dev unetway

Как создать нового пользователя и назначить группы одной командой

Следующая useraddкоманда создает нового пользователя с именем nathanиз основной группы usersи вторичных групп wheel и Developers.

sudo useradd -g users -G wheel,developers nathan

Показать группы пользователей

Чтобы отобразить полную информацию о пользователе, включая все группы, членом которых является пользователь, используйте id команду, за которой следует имя пользователя:

id username

Если вы опустите имя пользователя, команда напечатает информацию о текущем вошедшем в систему пользователе. Проверим пользователя unetway:

id unetway

Используйте groupsкоманду для отображения дополнительных групп пользователя:

groups unetway

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