в каком виде хранятся данные о пользователях unix

Пользователи в Linux. Типы пользователей, управление пользователями.

Сегодня я хочу поговорить о пользователях в Linux. Мы познакомимся с типами пользователей и узнаем в каких файлах хранится связанная с ними информация. Изучим команды позволяющие управлять пользователями и изменять их данные. Рассмотрим примеры создания пользователей с различными параметрами и последующим изменениям пользовательских настроек.

Типы пользователей

В ОС Linux существует три типа пользователей:

Каждый пользователь помимо имени имеет числовой идентификатор пользователя UID (User IDentificator). Пользователь root имеет идентификатор 0. Системные пользователи имеют идентификаторы от 1 до 100. Обычные пользователи имеют UID от 100.

Пользователи могут объединяться в группы. Каждый пользователь обязательно входит в ту или иную группу. Группы имеют числовой идентификатор группы GID (Group IDentificator).

Информация пользователей

В системе присутствует следующая информация о каждом пользователе:

Вся информация о пользователях хранится в следующих файлах:

У файлов /etc/passwd и /etc/group всегда определенные права доступа: чтение и запись для root, для остальных только чтение.

Помимо основных, в системе присутствуют дополнительные файлы.

Команды управления

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

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

Обычное добавление пользователя

Для создания пользователя достаточно выполнить команду useradd и указать его имя.

Синтаксис команды: useradd options username

Теперь нужно задать пароль для созданного пользователя. Пароль задается командой passwd с указанием имени пользователя.

Можно задать пароль для пользователя сразу при создании, например так:

Проверим с какими параметрами был создан пользователь:

Подобным образом команда useradd работает в CentOS и других подобных ему системах, но в Debian или Ubuntu она просто создаст голого пользователя, а все остальное придется добавлять потом вручную.

Чтобы создать пользователя с подобными параметрами в Debian & Ubuntu команда useradd должна выглядеть следующим образом.

Поэтому в Ubuntu & Debian удобнее пользоваться утилитой adduser, при ее использовании нужно будет ответить на несколько вопросов, в процессе ее выполнения будут видны все шаги по созданию нового пользователя.

Проверим как создался пользователь.

Создание пользователя с домашней директорией, отличной от дефолтной директории

По умолчанию команда useradd создает домашний каталог пользователя в директории /home, имя домашнего каталога всегда совпадает с именем пользователя. Например при создании пользователя techlist, создается домашняя директория /home/techlist.

Допустим что возникла необходимость задать пользователю домашний каталог с размещением и именем отличающимися от стандартных настроек. При использовании опции -d можно задать свой каталог для пользователя.

Как можно видеть, пользователь techlist создался с домашним каталогом в /opt/tech.

Создание пользователя с определенным UID и GID

Каждому пользователю при его создании присваивается UID, присвоение идет по порядку: 1000, 1001 и т.д. При использовании опции -u пользователю можно задать определенный UID. Для примера создадим пользователя techlist c UID равным 777.

Сначала создадим группу techlist c GID равным 777.

Обратите внимание, группа создана но пользователей в нет, теперь можно создать пользователя с UID=777 и указать его принадлежность к группе techlist с помощью опции -g и указания GID 777.

Создание пользователя с указанием принадлежности к нескольким группам

Если пользователь должен принадлежать сразу к нескольким группам, то указывается опция -G, после чего через запятую указываются группы к которым будет принадлежать пользователь.

Допустим что новый пользователь techlist должен принадлежать к следующим группам: group_1, group_2 и group_3.

Создание пользователя без домашнего каталога

Иногда пользователю не требуется домашний каталог, для этого используется опция -M.

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

По умолчанию каждый пользователь не имеет срока действия аккаунта. Срок действия можно установить задав дату истечения аккаунта. Для этого следует использовать опцию -e после которой указывается дата истечения аккаунта в формате YYYY-MM-DD. Создадим пользователя techlist с истечением аккаунта в 2017-05-01, по достижении даты аккаунт будет недействителен.

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

Чтобы установить срок истечения пароля пользователя, можно выполнить следующую команду.

Создание пользователя с указанием доп. информации

Иногда может возникнуть необходимость указать примечание для пользователя, в виде краткой заметки или указания имени и фамилии пользователя. Для этого можно воспользоваться опцией -c. Создадим пользователя vasek, с указанием имени и фамилии Vasya Pupkin.

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

Для того чтобы указать командную оболочку для пользователя используется опция -s

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

Изменение существующего пользователя

Иногда может потребоваться внести некоторые изменения в аккаунт пользователя. Сделать это можно при помощи команды usermod.

Синтаксис команды: usermod options username

Рассматривать применение команды будем на примере пользователя techlist.

Пользователь был создан с дефолтными настройками.

Добавление доп. информации пользователю

Для начала добавим имя и фамилию пользователя, опцией -c.

Изменение домашнего каталога пользователя

По умолчанию домашним каталогом пользователя techlist является /home/techlist. Изменим его на каталог /opt/techlist, при помощи опции -d и опцией -m перенесем в новый каталог все содержимое старого.

Установка даты истечения срока аккаунта

Назначим дату истечения действия аккаунта, аккаунт будет действовать до 2017-05-01, дата задается опцией -e.

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

Изменим группу пользователя techlist. Сначала посмотрим к каким группам он принадлежит.

Добавим пользователя techlist к группе group_1, используя опцию -g.

Как можно увидеть группа изменилась, если раньше была 1001(techlist), то теперь стала 1002(group_1).

Как добавить пользователя к новой группе без удаления из предыдущей? Для этого существует опция -G.

Теперь пользователь принадлежит одновременно к двум группам 1002(group_1) и 1003(group_2).

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

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

Теперь пользователь techlist относится к дополнительной группе wheel, что может наделить его привилегиями выполнять root-команды.

Изменение имени пользователя

Существующему пользователю можно изменить имя, изменим имя пользователя techlist на techlist_admin, делается это опцией -l.

Блокировка аккаунта пользователя

Для блокировки аккаунта пользователя достаточно выполнить команду с опцией -L.

Разблокировка аккаунта пользователя

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

Изменение командной оболочки пользователя

Чтобы изменить командную оболочку пользователя, надо выполнить следующую команду с опцией -s. Изменим пользовательскую оболочку для techlist_admin с /bin/bash/ на /bin/sh/.

Изменение UID и GID пользователя

Для изменения UID пользователя используется опция -u.

Для изменения GID пользователя используется опция -g.

Таким образом можно управлять пользователями и изменять их по своему усмотрению.

Удаление пользователей

userdel

синтаксис команды: userdel options username

Для того чтобы удалить пользователя, выполняем команду userdel. Команда userdel не удаляет пользователя если он работает в системе, сначала необходимо завершить все связанные с ним процессы. Для просмотра дополнительных опций команды userdel, используется ключ -h.

deluser

синтаксис команды: deluser options username

Настройки команды находятся в файле /etc/deluser.conf, здесь задается поведение утилиты при удалении пользователя.

Правильное удаление пользователя

Под правильным удалением пользователя нужно понимать определенную последовательность команд позволяющих удалить пользователя не оставив мусора и не обрушив систему.

Блокировка пользователя

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

Блокировку пользователя мы рассматривали выше.

Убить все пользовательские процессы

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

Узнаем что это за процессы используя их pid.

Hичего серьезного нет, можно завершать все. Завершение всех процессов вышвырнет пользователя из системы, а заново войти он не сможет, ибо был заранее заблокирован.

Источник

В каком виде хранятся данные о пользователях unix

Право на запись для каталога трактуется как возможность создания и удаления файлов в нём, а также возможность изменения атрибутов файлов (например, переименование или удаление). При этом субъекту не обязательно иметь права на запись для этих файлов, поскольку и переименование и удаление файла затрагивают только сам каталог.

Таким образом, из своего каталога пользователь может удалить любой файл. Часто возникает ситуация, когда каталог нужно использовать совместно — в этом случае необходимо разрешить запись в него либо группе пользователей, либо всем пользователям (например, общесистемный каталог для временных файлов). А если запись в каталог разрешена всем, то любой пользователь сможет удалить в нём любой файл. Для избежания этой проблемы был добавлен специальный атрибут — sticky bit [2] При установке этого атрибута пользователь, имеющий доступ на запись в этот каталог, может изменять только принадлежащие ему файлы.

Подмена идентификатора процесса

В UNIX существует механизм подмены идентификатора (SetUID), позволяющий пользователям запускать процессы с идентификаторами других пользователей. Этот механизм применяется в тех случаях, когда процессу для выполнения определённых операций необходимо предоставить повышенные права (например, суперпользователя) или права другого пользователя.

Рисунок 2.19. Подмена идентификатора процесса

в каком виде хранятся данные о пользователях unix. Смотреть фото в каком виде хранятся данные о пользователях unix. Смотреть картинку в каком виде хранятся данные о пользователях unix. Картинка про в каком виде хранятся данные о пользователях unix. Фото в каком виде хранятся данные о пользователях unix

В современных UNIX-системах предусмотрен и ещё один дополнительный атрибут — SetGID, бит подмены идентификатора группы. Этот механизм работает совершенно аналогично подмене идентификатора пользователя, с тем отличием, что процесс, запущенный из файла с атрибутом SetGID, получает идентификатор группы-владельца файла, UID же его остается неизменным. Использование SetGID позволяет весьма гибким образом контролировать ситуацию повышения прав доступа процесса.

Особое значение имеют атрибуты подмены идентификатора (SetUID и SetGID), установленные на каталогах (о других правах доступа для каталогов сказано в разделе «Разделяемые каталоги») — для каталогов тоже используются права на исполнение, хотя и имеют другой смысл, чем у исполняемых файлов. Атрибут SetGID, установленный на каталоге, указывает, что файлы и подкаталоги, создаваемые внутри этого подкаталога любыми процессами, будут получать тот же идентификатор группы, что и сам каталог. Причем подкаталоги будут также наследовать атрибут SetGID. Такой механизм используется для организации общих каталогов, файлы в которых должны быть доступны на равных условиях группе пользователей. Атрибут SetUID, установленный на каталоге, просто игнорируется.

Атрибуты подмены идентификаторов пользователя и группы несут потенциальную угрозу безопасности системы и должны использоваться с осторожностью.

Ограничения базовой модели доступа и её расширения

Простота системы прав доступа UNIX приводит к некоторым ограничениям. К примеру, стандартными средствами UNIX невозможно создать такое положение вещей, когда одна группа пользователей могла бы только читать из файла, другая — только запускать его, а всем остальным файл вообще не был бы доступен. Другое дело, что такое положение вещей встречается нечасто.

Со временем в различных версиях UNIX стали появляться расширения прав доступа, позволяющие устанавливать права на отдельные объекты системы. Поначалу это были так называемые флаги — дополнительные атрибуты файла, не позволяющие, например, переименовывать его или удалять из него информацию при записи (можно только дописывать). Флаги не устраняют главного недостатка, зато их легко организовать без изменения файловой системы: каждый флаг занимает ровно один бит.

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

Суперпользователь

Как было сказано ранее (см. раздел «Беглый взгляд на архитектуру UNIX»), в UNIX существует уровень доступа ядра и уровень доступа системы. Суперпользователь работает на уровне доступа ядра, так что он является, по сути, неотъемлемым компонентом самой системы.

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

Администрирование в UNIX (т. е. управление общезначимыми характеристиками системы) требует привилегий суперпользователя. При работе с повышенными привилегиями, в особенности от имени пользователя root следует быть очень осторожным: выполнение неверной команды может привести к выходу системы из строя и утрате информации. Поэтому даже администраторы никогда не работают в командной оболочке с правами суперпользователя всё время, а переходят в режим суперпользователя только тогда, когда это действительно необходимо (например, с помощью команды su ).

Аутентификация пользователей

В UNIX сеанс работы пользователя начинается с его аутентификации и заканчивается его выходом из системы. При входе в систему выполняется следующая последовательность действий (см. Рисунок 2.20, «Регистрация пользователя в системе»):

Рисунок 2.20. Регистрация пользователя в системе

в каком виде хранятся данные о пользователях unix. Смотреть фото в каком виде хранятся данные о пользователях unix. Смотреть картинку в каком виде хранятся данные о пользователях unix. Картинка про в каком виде хранятся данные о пользователях unix. Фото в каком виде хранятся данные о пользователях unix

В современных UNIX-системах существуют расширения систем авторизации и аутентификации, позволяющие интегрировать в процесс аутентификации любые дополнительные процедуры. Например, в Linux-системах этот механизм называется подключаемые модули аутентификации (Pluggable Authentication Modules, PAM ). Рассмотрение этих средств выходит за рамки данного курса.

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

База данных пользователей системы

Все данные о пользователях UNIX хранит в файле /etc/passwd в текстовом виде. Каждому пользователю соответствует одна строка, поля которой разделяются двоеточиями:

Пример 2.4. Пример файла /etc/passwd

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

Пароли на вход в систему пользователей в UNIX не хранятся в открытом виде, хранятся только их хэши (набор байт, получаемый из пароля с помощью односторонней функции). Даже если злоумышленник получит значение этого хэша, ему придется подбирать пароль, применяя данную одностороннюю функцию к различным словам и сравнивая со значением хэша. Часто хэши хранятся в специальном файле (например, /etc/shadow ), доступ к которому разрешен только системе, так что перебор вообще не возможен.

Изменение базы данных пользователей

С помощью команд usermod и groupmod можно изменять информацию в базах данных пользователей и групп. Эти команды также может выполнять только администратор системы.

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

Изменение прав доступа

Ограничения сеанса пользователя

В UNIX существует ряд динамических ограничений, накладываемых на процесс аутентификации пользователя и запущенные им программы. Ограничения можно разделить на следующие группы:

Вход пользователя в систему может быть ограничен видом терминала, удалённым адресом (в случае сетевого входа в систему), временем работы. Для задания этих ограничений в некоторых UNIX-системах используется файл /etc/login.access

ограничения запускаемых процессов

ограничения использования диска

Ограничения действуют на протяжении всего сеанса работы пользователя.

Резюме

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

Основными элементами политики безопасности являются субъект, объект и отношения между ними. Выделяют ряд моделей доступа, среди которых мандатный доступ, списки доступа (субъект-объектная модель) и произвольное управление доступом (субъект-субъектная модель).

В операционной системе UNIX номинальным субъектом является учётная запись пользователя, действительным субъектом — процесс пользователя, а объектом — файл. Три основных вида прав доступа: чтение, запись и исполнение, а также дополнительные права (подмены субъекта и разделяемости каталога). Права доступа указываются для трех групп: владельца объекта, группы-владельца и всех остальных.

Аутентификация пользователя (сопоставление ему номинального субъекта) при входе в систему состоит в проверке пароля, соответствующего входному имени пользователя.

В UNIX можно устанавливать динамические ограничения на сеанс пользователя.

Источник

В каком виде хранятся данные о пользователях unix

Файл /etc/passwd

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

Назначение полей этой записи представлено в следующей таблице.

Таблица 1. Поля файла /etc/passwd и их назначение

Файл /etc/group

Таблица 2. Поля файла /etc/group и их назначение

Пример записи из файла /etc/group:

Файл /etc/shadow

Файл содержит по одной записи из восьми полей, разделенных двоеточиями, для каждой учетной записи в системе. Назначение полей этой записи представлено в табл. 3.

Таблица 3. Поля файла /etc/shadow и их назначение

Номер поляНазначение
1Имя пользователя.
2Зашифрованный по особому алгоритму (обычно, DES или MD5 ) пароль.
3Количество дней между 01.01.1970 (началом эры UNIX ) и днем последнего изменения пароля.
4Минимальное количество дней между изменениями пароля.
5Срок действия пароля пользователя.
6За сколько дней система будет начинать предупреждать пользователя о необходимости изменения пароля.
7Сколько дней пользователь может не работать в системе, прежде чем его регистрационное имя будет заблокировано.
8Дата, после которой имя пользователя нельзя будет использовать в системе.

Системные регистрационные имена

Каждая версия ОС UNIX резервирует несколько специальных регистрационных имен для предопределенных системных целей. Так, в UNIX SVR4 системными считаются регистрационные имена, соответствующие идентификаторам от 0 до 100. Наиболее часто резервируются регистрационные имена, представленные в табл. 4.

Таблица 4. Системные регистрационные имена в ОС UNIX SVR4

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

Команда su предназначена для временного изменения действующего (эффективного) идентификатора пользователя и сеанса пользователя. Она имеет следующий синтаксис:

Изменение действующего идентификатора группы

Команда newgrp переводит пользователя в новую группу путем запуска нового командного интерпретатора с реальным и эффективным идентификатором (GID) новой группы. При этом новый командный интерпретатор запускается даже если переход в группу завершился ошибкой (например, указана несуществующая группа). Естественно, в новом командном интерпретаторе будут иметь нестандартные и непустые значения только переменные, экспортированные в среду.

Изменение пароля и характеристик учетной записи, связанных с регистрацией

Команда passwd имеет следующий синтаксис:

Таблица 5. Опции команды passwd

Правила построения паролей

При создании паролей обычно необходимо выполнять следующие требования:

Действие команды passwd

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

Пользователь root может изменять любой пароль; команда passwd не запрашивает у него старый пароль.

Устаревание паролей

Пароли действительны в течение ограниченных периодов времени (определяемых системным администратором), после чего их необходимо изменить. Поэтому необходимо хранить информацию о периоде активности для каждого пароля. Когда приближается дата истечения срока действия пароля, его владельцу предлагается выбрать новый пароль в течение определенного количества ближайших дней. Процесс отслеживания сроков действия паролей и уведомления пользователей о необходимости сменить пароль называется устареванием паролей (password aging).

Показ атрибутов пароля

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

login_name status lastchanged minimum maximum warn

или, если отсутствует информация, связанная с устареванием пароля,

Поля определены следующим образом:

login_name Регистрационное имя пользователя.

status Статус пароля для регистрационного_имени : PS означает наличие пароля, LK означает, что регистрация заблокирована, а NP означает отсутствие пароля.

Стандартные значения атрибутов

MINWEEKS Минимальное количество недель перед тем, как пароль можно будет изменить. Сразу после установки системы этот параметр имеет значение 0.

MAXWEEKS Максимальное количество недель, в течение которых пароль можно не изменять. Сразу после установки системы этот параметр имеет значение 24.

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

PASSLENGTH Минимальное количество символов в пароле. Сразу после установки системы этот параметр имеет значение 6.

Просмотр базы данных учетных записей

Команда logins имеет следующий синтаксис:

logins [-dmopstuxa] [-g группы ] [-l рег_имена ]

Действие опций команды logins представлено в табл. 6.

Таблица 6. Опции команды logins

ОпцияНазначение
-dВыбирает регистрационные имена с дублирующимися идентификаторами пользователя.
-mПоказывает все группы, к которым принадлежит пользователь.
-oФорматирует вывод в виде одной строки полей, разделенных двоеточиями.
-pВыбирает регистрационные имена без паролей.
-sВыбирает все системные регистрационные имена.
-tСортирует результат по регистрационному имени, а не по идентификатору пользователя.
-uВыбирает все пользовательские регистрационные имена.
-xВыдает расширенную информацию о каждом выбранном пользователе. Эта расширенная информация включает начальный каталог, начальный командный интерпретатор и информацию об устаревании паролей, причем каждый элемент выдается в отдельной строке. Информация о пароле содержит статус пароля ( PS при наличии пароля, NP при отсутствии пароля или LK для заблокированного регистрационного имени), дату последнего изменения пароля, количество дней, через которое потребуется изменить пароль, минимальное количество дней между изменениями и за сколько дней пользователь начнет получать (при регистрации) предупреждающее сообщение об устаревании пароля.
-aДобавляет к результату два поля, связанных с устареванием пароля. Они показывают, сколько дней пароль можно не использовать, перед тем как он автоматически деактивируется, и дату устаревания пароля.
-gВыбирает всех пользователей, принадлежащих указанной группе, сортируя список по идентификатору пользователя. Можно указывать несколько групп в виде списка через запятую.
-lВыбирает указанное регистрационное имя. Можно указывать несколько регистрационных имен в виде списка через запятую.

Получение списка зарегистрировавшихся пользователей

Для получения списка пользователей, работающих сейчас в системе, используется команда who со следующим синтаксисом:

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

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

имя регистрационное имя пользователя

состояние возможность записи на терминал

терминал имя терминала из каталога /dev

время время регистрации пользователя

ожидание время, прошедшее после последнего действия пользователя

pid идентификатор процесса командного интерпретатора

комментарий строка комментария из файла /etc/inittab (SVR4)

статус выхода статус возврата для «мертвых» процессов

Опции команды who представлены в табл. 7.

Рассмотрим примеры выполнения команды who в ОС Solaris 8:

В простейшем случае программа who вызывается без параметров:

Наконец, вот как используется команда who для самоидентификации:

Средства создания, изменения и удаления учетных записей пользователей

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

usermod [-u идентификатор [-o]] [-g группа ]
[-G группа [[, группа ]. ]] [-d каталог [-m]]
[-s shell ] [-c комментарий ] [-l новое_рег_имя ]
[-f inactive ] [-e expire ] рег_имя

Таблица 8. Основные опции команд управления учетными записями

Рассмотрим ряд простых примеров управления учетными записями:

Средства создания, изменения и удаления групп

groupadd [-g идентификатор [-o]] группа
groupmod [-g идентификатор [-o]] [-n имя ] группа
groupdel группа

Таблица 9. Опции команд управления группами

. По умолчанию выделяется уникальный идентификатор группы, не относящийся к зарезервированным. В UNIX SVR4 идентификаторы групп в диапазоне 0-100 зарезервированы.-oЭта опция позволяет задавать дублирующийся (не уникальный) идентификатор группы.-n имяСтрока печатных символов, задающая новое имя для группы при изменении. Строка не должна содержать двоеточия ( : ) или переводы строк ( \n ).группаИмя создаваемой, изменяемой или удаляемой группы. Имя группы не должно содержать символы двоеточия ( : ) или перевода строки ( \n ).

Рассмотрим ряд простых примеров управления группами:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *