Добавление пользователя в группу linux. Управляем пользователями: useradd, usermod и userdel.

Как добавить пользователя в разные группы в 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, к примеру, поэтому делать подобные изменения лучше продумав все заранее. В целом же, добавление пользователей в новые группы или изменения принадлежностей к ним не так сложно.

Чтобы добавить пользователя в группу можно использовать команды 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?

Ответ. Вы можете использовать команды 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:

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

# groupadd developers

Затем добавьте пользователя vivek в группу developers:

# useradd -G developers vivek

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

Убедитесь что пользователь добавлен в группу 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 # id tony

uid=1123(tony) gid=1124(developers) groups=1124(developers)

Опция -g позволяет добавить пользователя в основную группу. Группа должна существовать.

Пример использования usermod — Добавляем существующего пользователя в существующую группу

Добавляем существующего пользователя tony в вторичную группу ftp:

# usermod -a -G ftp tony

Изменяем существующему пользователю tony первучную группу на www.

Создадим пользователя 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, а также создать, изменить и удалить их. Поехали!

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

Начнём с разбора процедуры создания. Как и всё остальное, эта операция выполняется посредством специальной команды, которая в нашем случае имеет следующий синтаксис:

Обратите внимание, что для внесения подобных изменений в систему, вам необходимы root-права. Если вы их не имеете, то добавляйте «sudo» в начале каждой вводимой вами команды, чтобы они успешно выполнялись.

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


В том случае, если создание с параметрами не удалось осуществить, попробуйте прописать следующее:

Указанная строка позволит вам просмотреть все настройки.

Изменить эти параметры вам позволит строка:

Для изменения информации и параметров используйте утилиту usermod. Команда будет иметь следующий синтаксис:

Задать или поменять пароль дозволено следующим образом. Введите:

После этого потребуется написать желаемый пароль либо, если он уже был установлен, ввести старый, а после - новый.

Также у вас есть возможность задать пустой пароль . В таком случае команда будет иметь вид:

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

Для удаления используйте userdel. Синтаксис в нашем случае будет иметь вид.

В продолжение темы:
Модемы

Здравствуйте, уважаемые друзья. Сегодня речь пойдёт про конечные заставки YouTube. Функция появилась, относительно, недавно и её можно использовать в своих видео.Если помните,...