Группы для пользователей в Linux - основные и дополнительные. Управляем пользователями: useradd, usermod и userdel.
Создадим пользователя 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.
Чтобы добавить пользователя в группу можно использовать команды useradd или usermod . Useradd создаст нового пользователя. Usermod модифицирует существующую запись, ее можно использовать для добавления существующего пользователя в группу.
Есть два типа групп — первичная и вторичная. Вся информация о пользователях сохраняется в файлах /etc/passwd ,/etc/shadow и /etc/group.
Useradd — добавить нового пользователя во вторичную группу
Use useradd command to add new users to existing group (or create a new group and then add user). If group does not exist, create it. Syntax:
useradd -G {group-name
} username
Create a new user called vivek and add it to group called developers. First login as a root user (make sure group developers exists), enter:
# grep developers /etc/group
Output:
Developers:x:1124:
If you do not see any output then you need to add group developers using groupadd command:
# groupadd developers
Next, add a user called vivek to group developers:
# useradd -G developers vivek
Setup password for user vivek:
# passwd vivek
Ensure that user added properly to group developers:
# id vivek Output:
Uid=1122(vivek) gid=1125(vivek) groups=1125(vivek),1124(developers)
Please note that capital G (-G) option add user to a list of supplementary groups. Each group is separated from the next by a comma, with no intervening whitespace. For example, add user jerry to groups admins, ftp, www, and developers, enter:
# useradd -G admins,ftp,www,developers jerry
Useradd — добавить нового пользователя в первичную группу
To add a user tony to group developers use following command:
# useradd -g developers tony
# id tony
uid=1123(tony) gid=1124(developers) groups=1124(developers)
Please note that small -g option add user to initial login group (primary group). The group name must exist. A group number must refer to an already existing group.
Usermod — добавить существующего пользователя в существующую группу
Add existing user tony to ftp supplementary/secondary group with usermod command using -a option ~ i.e. add the user to the supplemental group(s). Use only with -G option:
# usermod -a -G ftp tony
Операционная система 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. Это может быть очень полезно для предоставления пользователю дополнительных полномочий и разграничения привилегий между пользователями. Если у вас остались вопросы, спрашивайте в комментариях!
При использовании операционной системой 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?
Ответ. Вы можете использовать команды useradd илиusermod для добавления пользователя в группу. Команда useradd создает нового пользователя или обновляет информацию у существующего. Командаusermod модифицирует существуюего пользователя. Вся информация о пользователях и группах храниться в файлах /etc/passwd, /etc/shadow и /etc/group.
Пример использования useradd — Добавляем нового пользователя в вторичную группу
Используем команду useradd для добавления нового пользователя в существующую группу. Если группа не существует создайте её. Синтаксис:
useradd -G {group-name} username
Создадим пользователя vivek и добавим его в группу developers. Залогиньтесь как пользователь root и убедитесь что группа developers существует:
# grep developers /etc/group
developers:x:1124:
developers : x : 1124 : |
Если группы нет, используйте команду groupadd для создания новой группы developers:
# groupadd developers
Затем добавьте пользователя vivek в группу developers:
# useradd -G developers vivek
Установите пароль пользователю vivek:
Убедитесь что пользователь добавлен в группу developers:
# id vivek Output:
uid=1122(vivek) gid=1125(vivek) groups=1125(vivek),1124(developers)
uid = 1122 (vivek ) gid = 1125 (vivek ) groups = 1125 (vivek ) , 1124 (developers ) |
Опция -G позволяет добавить пользователю группу. Группы можно перечислять через запятую. К примеру, добавим пользователя jerry в группы
admins, ftp, www, and developers, введя:
# useradd -G admins,ftp,www,developers jerry
Пример использования useradd — Добавляем нового пользователя в основную группу
Для добавления пользователя tony в группу developers используем следующую команду:
# useradd -g developers tony
uid=1123(tony) gid=1124(developers) groups=1124(developers)
Опция -g позволяет добавить пользователя в основную группу. Группа должна существовать.
Пример использования usermod — Добавляем существующего пользователя в существующую группу
Добавляем существующего пользователя tony в вторичную группу ftp:
# usermod -a -G ftp tony
Изменяем существующему пользователю tony первучную группу на www.