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

Операционная система Linux изначально планировалась как многопользовательская система. Для управления правами доступа для каждого из пользователей используется три флага: чтение, запись и выполнение. Но этого было недостаточно, поэтому были придуманы группы пользователей Linux. С помощью групп можно дать нескольким пользователям доступ к одному ресурсу.

Файлу присваивается группа, для нее описываются права, затем в эту группу вступают пользователи, чтобы получить доступ к файлу. Читайте подробнее про все это в статье . А в этой статье мы рассмотрим как добавить пользователя в группу linux.

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

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

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

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

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

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

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

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

sudo usermod -a -G wheel user


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


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

sudo usermod -a -G disks,vboxusers user

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

sudo usermod -g users user


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

Добавление пользователя в группу через GUI

В графическом интерфейсе все немного сложнее. В KDE добавление пользователя в группу linux выполняется с помощью утилиты Kuser. Мы не будем ее рассматривать. В Gnome 3 возможность управления группами была удалена, но в разных системах существуют свои утилиты для решения такой задачи, например, это system-config-users в CentOS и Users & Groups в Ubuntu.

Для установки инструмента в CentOS выполните:

sudo yum install system-config-users


Выполните двойной клик по имени пользователя, затем перейдите на вкладку «группы» . Здесь вы можете выбрать отметить галочками нужные дополнительные группы, а также изменить основную группу:


Для установки утилиты в Ubuntu запустите такую команду:

sudo apt install gnome-system-tools

Здесь интерфейс будет немного отличаться, утилита будет выглядеть так же, как и системная программа настройки пользователей только появится возможность управления группами Linux.

Выводы

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

Создадим пользователя vivek и добавим его в группу developers. Залогиньтесь как пользователь root:

Например добавим пользователя vivek :

useradd -g users -G admins,ftp,www,developers -s /bin/bash -p xxxx -d /home/ghost -m vivek

  • -d домашний каталог
  • -s задать стартовую оболочку (/bin/sh) - после можно изменить в файле /etc/passwd
  • -p пароль
  • -g основная группа, к которой приписывается пользователь (Группа должна существовать)
  • -G другие группы к которой приписывается пользователь
  • -m создать для пользователя домашний каталог
  • xxxx символьный пароль пользователя

Убедимся что группа developers существует:

# grep developers /etc/group

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

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

# adduser vivek developers

Убедимся что пользователь добавлен в группу developers:

# id vivek
Output:
uid=1122(vivek) gid=1125(vivek) groups=1125(vivek),1124(developers)

Установим/изменим пароль пользователю vivek:

Поиграемся с группами

Укажим пользователю vivek участие только в группе developers

usermod -G developers vivek

Укажим пользователю vivek участие только в группах admins, ftp, www, developers, введя:

# usermod -G admins,ftp,www,developers vivek

Удалим пользователя vivek из некоторых групп (переназначим ему группы):

# usermod -G ftp,www vivek

теперь vivek не входит в группы admins и developers.

Примечание: команда usermod не будет изменять имя пользователя, если этот пользователь в данный момент работает в системе.

userdel — удалить пользователя

Например удалим пользователя vivek:

  • -r удалить пользователя вместе с домашним каталогом

Подробный СИНТАКСИС

useradd [-u идентификатор [-o] [-i]] [-g группа ] [-G группа [[,группа ] . . .]] [-d каталог ] [-s shell ] [-c комментарий ] [-m [-k skel_dir ]] [-f inactive ] [-e expire ] [-p passgen ] [-a событие [, . . .]] рег_имя

Подробное ОПИСАНИЕ

Вызов useradd обычно добавляет новую запись о пользователе в файлы данных системы идентификации и проверки идентичности (Identification and Authentication - I&A). Исключением являются пользователи сетевой информационной службы (Network Information Service или, сокращенно, NIS). Она также позволяет задать принадлежность к дополнительным группам для пользователя (опция -G ) и создать для него начальный каталог (опция -m ). Новое регистрационное имя блокируется до тех пор, пока не будет выполнена команда passwd .

Сразу после установки стандартные значения для различных параметров указаны в файле /etc/default/useradd . Стандартные значения для тех из перечисленных ниже опций, которые предполагают использование стандартных значений, можно изменить с помощью команды defadm .

Записи системного файла, создаваемые с помощью этой команды, имеют ограничение длины - 512 символов в строке. Если для нескольких опций заданы длинные аргументы, это ограничение может быть нарушено.

Поддерживаются следующие опции:

-u идентификатор Идентификационный номер пользователя (UID). Этот номер должен быть неотрицательным целым числом, не превосходящим MAXUID , определенный в sys/param.h . По умолчанию используется следующий доступный (уникальный) не устаревший UID, больший 99. Эта опция игнорируется, если новое регистрационное имя будет администрироваться сетевой информационной службой (NIS). Подробнее об этом см. ниже в разделе "Регистрационные имена сетевой информационной службы".
-o Эта опция позволяет сдублировать UID (сделать его не уникальным). Поскольку защита системы в целом, а также целостность контрольного журнала (audit trail) и учетной информации (accounting information) в частности, зависит от однозначного соответствия каждого UID определенному лицу, использовать эту опцию не рекомендуется (чтобы обеспечить учет действий пользователей).
-i Позволяет использовать устаревший идентификатор UID.
-g группа Целочисленный идентификатор или символьное имя существующей группы. Эта опция задает основную группу (primary group) для нового пользователя. По умолчанию используется стандартная группа, указанная в файле /etc/default/useradd
-G группа[[,группа] . . .] Один или несколько элементов в списке через запятую, каждый из которых представляет собой целочисленный идентификатор или символьное имя существующей группы. Этот список определяет принадлежность к дополнительным группам (supplementary group membership) для пользователя. Повторения игнорируются. Количество элементов в списке не должно превосходить NGROUPS_MAX- 1 , поскольку общее количество дополнительных групп для пользователя плюс основная группа не должно превосходить NGROUPS_MAX . Эта опция игнорируется, если новое регистрационное имя будет администрироваться сетевой информационной службой (NIS). См. раздел "Регистрационные имена сетевой информационной службы" ниже.
-d каталог Начальный каталог (home directory) нового пользователя. Длина этого поля не должна превосходить 256 символов. По умолчанию используется HOMEDIR/рег_имя , где HOMEDIR - базовый каталог для начальных каталогов новых пользователей, а рег_имя - регистрационное имя нового пользователя.
-s shell Полный путь к программе, используемой в качестве начального командного интерпретатора для пользователя сразу после регистрации. Длина этого поля не должна превосходить 256 символов. По умолчанию это поле - пустое, что заставляет систему использовать стандартный командный интерпретатор /usr/bin/sh . В качестве значения shell должен быть указан существующий выполняемый файл.
-c комментарий Любая текстовая строка. Обычно, это краткое описание регистрационного имени и используется сейчас для указания фамилии и имени реального пользователя. Эта информация хранится в записи пользователя в файле /etc/passwd . Длина этого поля не должна превосходить 128 символов.
-m Создает начальный каталог нового пользователя, если он еще не существует. Если каталог уже существует, добавляемый пользователь должен иметь права на доступ к указанному каталогу.
-k skel_dir Копирует содержимое каталога skel_dir в начальный каталог нового пользователя, вместо содержимого стандартного "скелетного" каталога, /etc/skel . Каталог skel_dir должен существовать. Стандартный "скелетный" каталог содержит стандартные файлы, определяющие среду работы пользователя. Заданный администратором каталог skel_dir может содержать аналогичные файлы и каталоги, созданные для определенной цели.
-f inactive Максимально допустимое количество дней между использованиями регистрационного имени, когда это имя еще не объявляется недействительным. Обычно в качестве значений используются положительные целые числа.
-e expire Дата, начиная с которой регистрационное имя больше нельзя будет использовать; после этой даты никакой пользователь не сможет получить доступ под этим регистрационным именем. (Эта опция удобна при создании временных регистрационных имен.) Вводить значение аргумента expire (представляющего собой дату) можно в любом формате (кроме Julian date). Например, можно ввести 10/6/99 или October 6, 1999 .
-p passgen Указывает, что поле FLAG в файле /etc/shadow должно быть установлено в указанное значение. К этому полю обращается команда passwd , чтобы определить, действует ли для данного пользователя генератор паролей. Если опция -p явно не задана, проверяется запись FORCED_PASS в файле /etc/default/useradd , чтобы определить значение для соответствующего поля в /etc/shadow . Если записи FORCED_PASS нет в /etc/default/useradd , в соответствующем поле записи в /etc/shadow значения не будет. Если значение FORCED_PASS равно 1, запись в /etc/shadow получает значение 1. Если значение passgen не пустое и не является печатным символом ASCII, выдается диагностическое сообщение.
-a событие Список типов или классов событий через запятую, образующих маску аудита (audit mask) для пользователя. Сразу после установки системы стандартной маски аудита для пользователя нет, но ее можно задать в файле /etc/default/useradd с помощью команды defadm . Эту опцию можно использовать, только если установлены утилиты аудита (Auditing Utilities). (Чтобы узнать, какие пакеты установлены в системе, выполните команду pkginfo .)
рег_имя Строка печатных символов, задающая регистрационное имя для нового пользователя. В ней не должно быть двоеточий (: ) и символов перевода строки (\n ). Она также не должна начинаться с прописной буквы.

Учтите, что многие из стандартных значений для рассмотренных выше параметров можно изменить с помощью команды defadm , предназначенной для работы с файлом /etc/default/useradd . Эти стандартные значения применяются только для локальных пользователей. Для пользователей NIS стандартные значения задаются в базе данных сетевой информационной службы. Чтобы изменить стандартные значения NIS, необходимо задать опции в командной строке.

Регистрационные имена сетевой информационной службы

Если регистрационное имя начинается с символа + , (например, +chris ), определением пользователя будет управлять сетевая информационная служба (NIS). Значения по умолчанию будут определяться на основе базы данных NIS, а не файла /etc/defaults/useradd . Значения аргументов для опций -u , -g и -G будут молча проигнорированы, если эти опции заданы. Вместо этого, значения идентификатора пользователя и идентификатора группы будут взяты из базы данных NIS. Подробнее см. страницу справочного руководства passwd . Учтите, что при добавлении пользователя NIS регистрационное имя должно уже существовать в базе данных NIS. Например, чтобы добавить регистрационное имя chris как имя пользователя NIS, chris уже должен существовать в базе данных NIS. Затем необходимо вызвать useradd с регистрационным именем +chris , чтобы указать, что необходимо добавить пользователя chris как пользователя NIS, а не как локального пользователя.

ФАЙЛЫ

/etc/default/useradd
/etc/group
/etc/passwd
/etc/security/ia/ageduid
/etc/security/ia/audit (если установлены утилиты аудита - Auditing Utilties)
/etc/security/ia/index
/etc/security/ia/master
/etc/shadow
/etc/skel

ДИАГНОСТИКА

Команда useradd завершается с кодом возврата 0 в случае успеха. При возникновении ошибок могут быть выданы следующие сообщения:


Неверный синтаксис командной строки.
The command line syntax was invalid.
В опции задан недопустимый аргумент.
An invalid argument was provided with an option.
Указанный в опции -u идентификатор уже используется, а опция -o не указана.
The uid specified with the -u option is already in use and the -o option was not specified.
Указанная в опции -g группа не существует.
The group specified with the -g option does not exist.
Указанное регистрационное имя не уникально.
The specified login is not unique.
Не удалось изменить /etc/group. Регистрационное имя добавлено в файл /etc/passwd, но не в файл /etc/group.
Cannot update /etc/group. The login was added to the /etc/passwd file but not to the /etc/group file.
Не удалось создать начальный каталог (в опции -m) или не удалось выполнить копирование skel_dir в начальный каталог.
Unable to create the home directory (with the -m option) or unable to complete the copy of skel_dir to the home directory.
Идентификатор недостаточно устарел. Выберите другой.
uid not aged sufficiently. Choose another.
Была указана недопустимая опция -a; системная служба не установлена.
An invalid option -a was specified; system service not installed.
Указан недопустимый тип или класс события аудита.
An invalid audit event type or class event was specified.

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

Linux является многопользовательской системой и группы созданы для того, чтобы определенный пользователь имел возможность доступа к файлам и устройствам, которые принадлежат этим группам.

Обычно по умолчанию простые пользователи добавлены в группы audio (доступ устройствам аудио), lp (управление заданиями печати), optical (доступ к дисководам), power (выключение компьютера, спящий режим). Так же группы служат для защиты данных одного пользователя от других, это один из эффективных, и в тоже время простых способов подобной защиты.

Групп, которые могут еще потребоваться пользователю множество. Иногда нужно, например, добавить пользователя в группу Linux «camera», это позволит иметь доступ к управлению подключенного к компьютеру фотоаппарату, а для настройки сети требуется состоять в группе network.

А для полноценной работы с виртуальной машины нужно быть членом группы «vboxusers». Добавить пользователя в группы Linux довольно просто, причем как через графическую оболочку, так и через консоль.

Добавить пользователя в группу Linux через интерфейс

В графической оболочке KDE нужно открыть меню параметры системы (требуется ввод пароля root)- менеджер пользователей - настройки - группы - поставить галочку на нужной группе - применить.

В GNOME нужно перейти во вкладку система -> администрирование -> пользователи и группы -> выбираем нужную группу, кликаем по ней дважды, -> выбираем нужного пользователя, ставим галочку на нем.

В обоих способах есть недостаток - найти вкладку «система» удастся не на всех дистрибутивах, по умолчанию на многих эти инструменты не ставятся. В GNOME нужно установить пакет gnome-system-tools , а KDE нужно установить пакет kdeadmin .

Добавить пользователя Linux через консоль

А можно не заморачиваться с установкой пакетов, а добавить пользователя в группу Linux с помощью консоли . Все действия нужно выполнять от пользователя root (набирать перед командами sudo, или один раз набрать su и после ввода пароля уже откроется консоль суперпользователя, но для второго способа нужно добавить себя в группу «wheel», непроизвольно вышел еще один пример).

Вот пример добавления пользователя Linux в одну из групп. Открываем консоль. Для начала посмотрим, какие есть группы в системе:

#sudo cat /etc/group
Затем посмотрим, к каким группам пользователь принадлежит:

#sudo groups
Для добавления пользователя user1 в группу «wheel» введем:

#sudo gpasswd -a user1 wheel
Если надо удалить пользователя user1 из группы «games» вводим:

#sudo gpasswd -d user1 games
Если нужно создать свою группу, обычно такая потребность возникает при организации совместного доступа к файлам, нужно ввести:

#sudo groupadd имя_новой_группы
Удалить существующую группу можно командой:

#sudo groupdel имя_удаляемой_группы
Удалять группы лучше только те, которые сами создали, чтобы не возникло проблем с работой операционной системы.

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

Все довольно просто.

Как добавить пользователя в разные группы в Linux (CentOS, Fedora, Ubuntu, SUSE и пр.) - достаточно частый вопрос. В Windows системах подобные вопросы не возникают - добавление пользователей в группы дело обычнои и всем интуитивно понятное.

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

Важно знать, что в Linux - начиная с CentOS и RedHat и заказчивая Ubuntu есть понятие основной и второстепенных групп. При чем количество второстепенных групп, условно, не ограничено.

В чем заключается отличие основных от вспомагательных групп (Secondary или Supplementary) в Linux?
Когда пользователь создает новый файл, его параметры принадлежности к группе берутся исходя из принадлежности к основной группе. Везде, где применяется однозначный ответ на вопрос принадлежности по группе используется основная группа. Вспомогательные группы потому и называются вспомогательные, поскольку несут только дополнительный функционал. К примеру, при применении разделении прав доступа по группам в Linux.

По умолчанию, практически во всех версиях Linux за исключением SUSE (из популярных) при создании нового пользователя он сразу добавляется в группу c одноименным своему имени названием. Это сделано в целях безопасности т.к. так проще ошибиться при разграничении прав доступа. Если мы добавляем пользователя в дополнительную группу Linux, то он будет иметь все те же права на объекты, которые указаны во втором октете прав. Т.е. логика достаточно прозрачна.

Важно! Ниже будут рассмотрены команды для добавления и модификации групп пользователя, к которым он принадлежит. Однако нужно сказать сразу, что если у пользователя не было прав на объект, а мы добавляем ему дополнительную группу, которая даст право ему на этот объект, то фактических прав он не получит до тех пор, пока не перелогинится в системе т.к. в момент логина происходит считывание правв по группам. Есть возможность обхода этого (типа su -l $USER - для текущего пользователя), но надежнее просто перелогиниться.

Как узнать в каких группах находится пользователь?

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

id имя_пользователя

В ответ на команду получаем данные типа:

uid=501(test_user) gid=501(test_user) groups=501(test_user)

Как видим, мы получили текущие идентификатора для пользователя и группы. Основная группа пользователя Linux отображается в значении gid. Далее после значения groups идет перечисление всех групп, в которые входит данный пользователь. Все группы кроме той, которая указана в gid являются, соответственно, вспомогательными.

Задаем нужные группы (несколько) при добавлении пользователя

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

  1. -g - маленькая g в параметре означает добавление данному пользователю основной группы, которая указана после этого параметра
  2. -G - большая G, которая указана в параметре добавляет вспомогательные группы для данного пользователя. Можно добавлять сразу несколько групп, но при условии, что они перечислены через запятую, и между ними нет пробелов.

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

useradd test_user2 -g test -G test1

Соответственно, если мы зададим после этого команду id с указанием test_user2, то мы получим следующий результат:

uid=503(test_user2) gid=502(test) groups=502(test),503(test1)

Изменение принадлежностей к группам существующих пользователей

Если пользователи и группы у нас в системе существуют и нам нужно внести только изменения в существующие принадлежности - используем команду usermod :

usermod -a -G test2 test_user2

uid=503(test_user2) gid=502(test) groups=502(test),503(test1),505(test2)

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

Важно! Флаг -a (или --append) обозначает, что к существующим принадлежностям к группам мы добавляем новую. Если бы мы не указали этого флага - в этом случае из вспомогательных групп осталась бы только одна - test2. И если мы хотим поменять основную группу - мы используем параметр -g (маленькая).

Подводя итог, нужно сказать, что при изменении и удалении групп, нужно всегда помнить, что у нас есть еще периодические задачи в crontab, к примеру, поэтому делать подобные изменения лучше продумав все заранее. В целом же, добавление пользователей в новые группы или изменения принадлежностей к ним не так сложно.