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

Для того, чтобы добавить пользователя в группу Linux, необходимо использовать команду usermod …

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

Как я уже сказал, для каждого пользователя существует два типа групп, это первичная, основная для него группа и дополнительные.

  • Первичная группа — создается автоматически, когда пользователь регистрируется в системе, в большинстве случаев имеет такое же имя, как и имя пользователя. Пользователь может иметь только одну основную группу;
  • Вторичные группы — это дополнительные группы, к которым пользователь может быть добавлен в процессе работы, максимальное количество таких групп для пользователя — 32;

Как обычно, лучше всего будет добавлять пользователя в группу через терминал, поскольку это даст вам больше гибкости и возможностей. Для изменения параметров пользователя используется команда usermod. Рассмотрим ее опции и синтаксис:

$ usermod опции синтаксис

Здесь нас будут интересовать только несколько опций с помощью которых можно добавить пользователя в группу root linux. Вот они:

  • -G — дополнительные группы для пользователя;
  • -a — добавить пользователя в дополнительные группы из параметра -G, а не заменять им текущее значение;
  • -g — установить новую основную группу для пользователя, такая группа уже должна существовать, и все файлы в домашнем каталоге теперь будут принадлежать именно этой группе.

У команды намного больше опций, но нам понадобятся только эти для решения нашей задачи. Теперь рассмотрим несколько примеров. Например, чтобы добавить пользователя в группу sudo linux используйте такую комбинацию:

sudo usermod -a -G wheel user

Если вы не будете использовать опцию -a, и укажите только -G, то утилита затрет все группы, которые были заданы ранее, что может вызвать серьезные проблемы. Например, вы хотите добавить пользователя в группу disk и стираете wheel, тогда вы больше не сможете пользоваться правами суперпользователя и вам придется сбрасывать пароль. Теперь смотрим информацию о пользователе:

id user

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

sudo usermod -a -G disks,vboxusers user

Основная группа пользователя соответствует его имени, но мы можем изменить ее на другую, например users:

sudo usermod -g users user

Теперь основная группа была изменена. Точно такие же опции вы можете использовать для добавления пользователя в группу sudo linux во время его создания с помощью команды useradd.

Как создать новую группу в Linux

Если вы хотите создать новую группу в своей системе, используйте команду groupadd, заменив new_group на имя группы, которую вы хотите создать. Вам также нужно будет использовать sudo с этой командой (или в дистрибутивах Linux, которые не используют sudo, вам нужно будет запустить команду su, чтобы получить повышенные разрешения перед запуском команды).

sudo groupadd new_group

Список групп, в которых состоит пользователь

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

При выполнении команды groups без аргументов, выводится список групп текущего пользователя.

# groupspingvinus adm cdrom sudo dip plugdev lpadmin sambashare

Можно указать имя пользователя, для которого нужно вывести список групп, в которых он состоит. Например, выведем группы, в которых состоит пользователь root.

# groups rootroot : root

Linux группы

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

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

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

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

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

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

Добавление новых пользователей в группы

Первое и единственное исключение — добавление новых пользователей в группы:

sudo useradd -G

Команда id показывает основную информацию о пользователе в системе. Поэтому, чтобы доказать, что пользователь не существует, вводим:

pulkit@hostname:~$ id testuserid: ‘testuser’: no such userpulkit@hostname:~$

Теперь мы добавляем нового пользователя в существующую группу:

pulkit@hostname:~$ sudo useradd -G pulkit testuserpulkit@hostname:~$ id testuseruid=1004(testuser) gid=1004(testuser) groups=1004(testuser),1000(pulkit)pulkit@hostname:~$

Изменение первичной группы пользователя

Хотя учетная запись пользователя может входить в нескольких групп, одна из групп всегда является «основной группой», а остальные являются «вторичными группами». Процесс входа пользователя, файлы и папки, созданные пользователем, будут назначены первичной группе.

Чтобы изменить основную группу, которой назначен пользователь, запустите команду usermod, заменив group_name на имя группы, а user_name на имя учетной записи пользователя.

usermod -g group_name user_name

Обратите внимание здесь на -g. Когда вы используете маленькую g, вы назначаете главную группу. Когда вы используете заглавную -G , как в примерах выше, вы назначаете вторичную группу.

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

Удалим пользователя pingvinus из группы editorsgroup.

sudo gpasswd -d pingvinus editorsgroup

Чтобы изменения вступили в силу, нужно выйти и войти в систему.

Просмотр пользователей

Учётные записи в системах Linux – это универсальные компоненты. Которые представляют собой как реальных пользователей, так и виртуальных. Последние предназначены для функционирования системных сервисов Linux, являющихся неотъемлемыми составляющими системы. Или же это могут быть служебные, дополнительно добавленные в систему сервисы, предназначенные для расширения её функционала.

Независимо от того, каким пользователям (реальным или виртуальным) принадлежат учётные записи, вся основная информация о них хранится в файле /etc/passwd. Каждая учётная запись в этом файле представлена одной строкой, разделённой на поля символами двоеточия. Например, просмотреть этот файл можно командой less:

$ less /etc/passwd root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh sys:x:3:3:sys:/dev:/bin/sh sync:x:4:65534:sync:/bin:/bin/sync . . . games:x:5:60:games:/usr/games:/bin/sh

Имя пользователя (учётной записи) содержится в первом поле. Поэтому, чтобы упростить восприятие вывода, когда нужно получить например, только список имён пользователей, можно использовать соответствующие инструменты, например команду cut (или аналогичные sed или awk):

$ cut -d : -f 1 /etc/passwd root daemon bin sys sync . . . games

Конечно, для того, чтобы различать принадлежность некоторых учётных записей к реальным или виртуальным пользователям, необходим некоторый опыт администрирования Linux или UNIX. Например, в приведённом выводе пользователь root – это суперпользователь. А пользователи daemon, bin, sys и sync – учётные записи, от имени которых работают системные сервисы.

Вообще, изначально по устоявшимся соглашениям, по-умолчанию в системах Linux принято придерживаться определённых правил для наименования учётных записей, обслуживающих системные или служебные процессы и/или сервисы. Так, например, для работы веб-сервера Apache обычно используется учётная запись www-data. Это очень важно для обеспечения и контроля безопасности системы. Таким образом легко разделять привилегии по функциональному признаку для пользователей. Такие же соглашения действуют и для наименования системных или служебных процессов. Тот же Apache обычно представляется процессами httpd или apache.

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

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

sudo useradd -g users -G wheel,developers nathan

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: