Пользователи и группы в Linux

Различные типы пользователей

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

Пользователи в Linux

В Linux есть два способа взглянуть на безопасность системы. Есть привилегированные пользователи, и есть непривилегированные пользователи. Привилегированный пользователь по умолчанию - root. Эта учетная запись пользователя имеет полный доступ ко всему на сервере Linux и может работать в системном пространстве без ограничений. Учетная запись пользователя root предназначена для выполнения задач системного администрирования и должна использоваться только для этого. Для всех других задач следует использовать непривилегированную учетную запись пользователя.

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

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

Ниже показан пример вывода команды.
[root@localhost ~]# id user
uid=1001(user) gid=1001(user) groups=1001(user)

Работая как root

Во всех системах Linux по умолчанию присутствует пользователь root, также известный как суперпользователь. Эта учетная запись используется для управления Linux. Root, например, может создавать другие учетные записи пользователей в системе. Для некоторых задач требуются права суперпользователя. Некоторые примеры - установка программного обеспечения, управление пользователями и создание разделов на дисковых устройствах. Вообще говоря, для всех задач, связанных с прямым доступом к устройствам, требуются права суперпользователя.

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

su

Открывает subshell (подоболочку) от имени другого пользователя с тем преимуществом, что только команды subshell выполняются от имени пользователя root.
sudo

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

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

Использование su

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

Если набрана только команда su, подразумевается имя пользователя root. Но su можно использовать для запуска задач от имени другого пользователя. Например, введите su user, чтобы открыть подоболочку от имени пользователя user. При использовании su в качестве обычного пользователя вам будет предложено ввести пароль, и после ввода вы получите учетные данные целевого пользователя:

[user@localhost ~]$ su
Password:
[root@localhost user]#

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

Использование sudo

Вместо использования учетной записи root, непривилегированные пользователи могут быть настроены на использование разрешений администратора для определенных задач с помощью sudo. Когда sudo настроен, обычные пользователи имеют привилегии sudo, и для использования этих привилегий они запускают команду с помощью sudo. Таким образом, вместо использования таких команд, как useradd в качестве пользователя root, вы используете обычную учетную запись пользователя и набираете sudo useradd. Это определенно более безопасно, потому что вы сможете действовать так, как если бы у вас были права администратора при выполнении этой конкретной команды.

При создании пользователей Linux в процессе установки вы можете выбрать предоставление прав администратора этому конкретному пользователю. Если вы решите сделать это, пользователь сможет использовать все команды администратора, используя sudo. Также возможно установить привилегии sudo после установки. Чтобы сделать это очень простым способом, вы должны выполнить простую двухэтапную процедуру:
  1. Сделайте административную учетную запись членом группы wheel с помощью usermod -aG wheel user.
  2. Введите visudo и убедитесь, что строка %wheel ALL=(ALL) ALL включена.

PolicyKit

Большинство программ администрирования с графическим интерфейсом пользователя используют PolicyKit для аутентификации в качестве пользователя root. Если обычный пользователь не входит в группу доступа wheel, ему будет предложено пройти аутентификацию. Если он входит в группу wheel, откроется приложение PolicyKit.

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

  1. Войдите в систему под обычным пользователем;
  2. Введите whoami, чтобы увидеть, какую учетную запись вы используете в данный момент. Также введите id и обратите внимание, что вы получаете больше информации о ваших текущих учетных данных при использовании id;
  3. Наберите su. При запросе пароля введите пароль root. Введите id еще раз. Вы видите, что вы в настоящее время root;
  4. Введите visudo и убедитесь, что строка %wheel ALL=(ALL) ALL включена;
  5. Введите useradd -G wheel user, чтобы создать пользователя user, который является членом группы wheel;
  6. Введите id user, чтобы убедиться, что он добавлен в группу wheel;
  7. Установите пароль для User, введя passwd user. Введите пароль дважды;
  8. Выйдите из системы и войдите в систему как user;
  9. Наберите sudo useradd user1. Введите пароль при запросе. Вот вы и создали еще одного пользователя.

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

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

Обычные и системные аккаунты

В типичной среде Linux существуют два типа учетных записей пользователей. Существуют учетные записи пользователей, которым необходимо работать на сервере и которым требуется ограниченный доступ к ресурсам на этом сервере. Эти учетные записи обычно имеют пароль, который используется для аутентификации пользователя в системе. Существуют также системные учетные записи, которые используются службами, которые предлагает сервер. Обе учетные записи пользователей имеют общие свойства, которые хранятся в файлах /etc/passwd и /etc/shadow. Ниже показано содержимое файла /etc/passwd.

ntp:x:38:38::/etc/ntp:/sbin/nologin
chrony:x:994:993::/var/lib/chrony:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
gnome-initial-setup:x:993:991::/run/gnome-initial-setup/:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
user:x:1000:1000:user:/home/user:/bin/bash

Как видите, для определения учетной записи пользователя в /etc/passwd используются разные поля. Поля отделены друг от друга двоеточием. Ниже приводится краткое изложение этих полей, а затем краткое описание их назначения.

Имя пользователя (Username): это уникальное имя для пользователя. Имена пользователей важны для соответствия пользователя его паролю, который хранится отдельно в /etc/shadow. В Linux в имени пользователя не должно быть пробелов.

Пароль: в старые времена второе поле /etc/passwd использовалось для хранения хеш-пароля пользователя. Поскольку файл /etc/passwd доступен для чтения всем для пользователей это создает угрозу безопасности, и по этой причине в современных системах Linux пароли хэшей хранятся в /etc/shadow.

UID: каждый пользователь имеет уникальный идентификатор пользователя (UID). Это числовой идентификатор. Именно UID действительно определяет, что может делать пользователь. Когда для пользователя установлены разрешения, UID сохраняется в метаданных файла (а не в имени пользователя). UID 0 зарезервирован для root, неограниченной учетной записи пользователя. Более низкие UID (обычно до 999) используются для системных учетных записей, а более высокие UID (по умолчанию от 1000) зарезервированы для людей, которым необходимо подключить каталог к серверу. Диапазон UID, которые используются для создания учетных записей обычных пользователей, задается в /etc/login.defs.

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

Поле комментариев (Comment field): поле комментариев, как можно догадаться, используется для добавления комментариев к учетным записям пользователей. Это поле является необязательным, но его можно использовать для описания того, для чего создается учетная запись пользователя. Некоторые утилиты, такие как устаревшая утилита finger, могут использоваться для получения информации из этого поля. Это поле также называется полем GECOS, которое обозначает General Electric Comprehensive Operating System и имело конкретную цель для определения рабочих мест в начале 1970-х годов, когда General Electric была еще важным производителем серверов.

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

Оболочка (Shell): это программа, которая запускается после успешного подключения пользователя к серверу. Для большинства пользователей это будет /bin/bash, оболочка Linux по умолчанию. Для системных учетных записей это обычно будет оболочка типа /sbin/nologin.
Команда /sbin/nologin - это специальная команда, которая молча запрещает доступ пользователям (чтобы гарантировать, что если случайно злоумышленник войдет на сервер, он не сможет получить доступ к оболочке). Вы можете создать файл с именем /etc/nologin.txt, который содержит сообщение, которое будет отображаться, когда пользователь, имеющий /sbin/nologin в качестве оболочки, попытается войти в систему.

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

Пример содержимого /etc/shadow.

[root@localhost ~]# tail -n 10 /etc/shadow
ntp:!!:16420::::::
chrony:!!:16420::::::
abrt:!!:16420::::::
pulse:!!:16420::::::
gdm:!!:16420::::::
gnome-initial-setup:!!:16420::::::
postfix:!!:16420::::::
sshd:!!:16420::::::
tcpdump:!!:16420::::::
user:$6$3VZbGx1djo6FfyZo$/Trg7Q.3foIsIFYxBm6UnHuxxBrxQxHDnDuZxgS.We/
MAuHn8HboBZzpaMD8gfm.fmlB/ML9LnuaT7CbwVXx31:16420:0:99999:7:::

Следующие поля определены в /etc/shadow:

Имя для входа: обратите внимание, что /etc/shadow не содержит никаких UID, а только имена пользователей. Это открывает возможность для нескольких пользователей использовать один и тот же UID, но разные пароли (что, кстати, не очень рекомендуется);

Зашифрованный пароль: в этом поле содержится все, что необходимо для безопасного хранения пароля;

Дни с 1 января 1970 года, когда пароль последний раз изменялся: многие вещи в Linux относятся к этой дате, которая в Linux считается началом дней. Это также упоминается как эпоха;

За несколько дней до того, как пароль может быть изменен: это позволяет системным администраторам использовать более строгую политику паролей, когда невозможно сразу вернуться к исходному паролю, если пароль был изменен. Обычно это поле имеет значение 0;

Дни, после которых пароль должен быть изменен: в этом поле указан максимальный срок действия паролей. Обратите внимание, что по умолчанию он установлен на 99 999 (около 273 лет);

За несколько дней до истечения срока действия пароля пользователь получает предупреждение: это поле используется для предупреждения пользователя о предстоящей смене пароля. Обратите внимание, что по умолчанию установлено значение 7 (даже если срок действия пароля установлен на 99 999 дней!);

Через несколько дней после истечения срока действия пароля эта учетная запись отключена: используйте это поле для принудительного изменения пароля. После истечения срока действия пароля пользователи больше не могут входить в систему;

Дни с 1 января 1970 года эта учетная запись отключена: администратор может установить это поле, чтобы отключить учетную запись. Обычно это лучший подход, чем удаление учетной записи, поскольку все связанные свойства и файлы этой учетной записи будут сохранены, но больше не могут использоваться для аутентификации на вашем сервере;

Зарезервированное поле, которое когда-то было добавлено "для будущего использования": это было давно; это поле, вероятно, никогда не будет использовано;

Большинством свойств пароля можно управлять с помощью команды passwd или chage, которые обсуждаются далее.

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

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

Также есть useradd. useradd - это утилита, которую вы должны использовать для создания пользователей.

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

Изменение файлов конфигурации

Для добавления учетных записей пользователей достаточно, чтобы одна строка была добавлена в /etc/passwd, а другая - в /etc/shadow, в которой определены учетная запись пользователя и все ее свойства. Это не рекомендуется. Сделав ошибку, вы можете испортить целостность файла и сделать регистрацию абсолютно невозможной для всех. Кроме того, могут возникнуть проблемы с блокировкой, если один администратор пытается изменить содержимое файла напрямую, а другой администратор хочет написать изменение с помощью какого-либо инструмента.

Если вы настаиваете на изменении файлов конфигурации напрямую, вам следует использовать vipw. Эта команда открывает интерфейс редактора для ваших файлов конфигурации и, что более важно, устанавливает соответствующие блокировки файлов конфигурации для предотвращения повреждения. Однако он не проверяет синтаксис, поэтому убедитесь, что вы знаете, что делаете, потому что, даже сделав опечатку, вы все равно можете серьезно испортить свой сервер. Если вы хотите использовать этот инструмент для изменения файла /etc/shadow, используйте vipw -s. Для редактирования содержимого файла /etc/group, в котором определены группы, существует аналогичная команда с именем vigr.
Приятно знать, что vipw и vigr существуют, но лучше не использовать эти утилиты или что-либо еще, что напрямую открывает файлы конфигурации пользователя и группы. Вместо этого используйте такие инструменты, как useradd и groupmod.

Использование useradd

Утилита useradd, вероятно, является наиболее распространенным инструментом в Linux для управления пользователями.
Это позволяет вам добавлять учетную запись пользователя из командной строки, используя множество ее параметров. Используйте, например, команду useradd -m -u 1201 -G sales,ops user, чтобы создать пользователя user, который является участником группы sales и ops с UID 1201, а также добавить домашний каталог в учетную запись пользователя.

Каталог home

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

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

Если при создании учетных записей пользователей вы также указываете своему серверу добавить домашний каталог (например, с помощью useradd -m), содержимое каталога "skeleton" копируется в домашний каталог пользователя. Каталог skeleton (каркас) - /etc/skel, и он содержит файлы, которые копируются в домашний каталог пользователя в момент создания этого каталога. Эти файлы также получат соответствующие разрешения, чтобы новый пользователь мог использовать их и получать к ним доступ.
По умолчанию каталог skeleton содержит в основном файлы конфигурации, которые определяют, как настраивается пользовательская среда. Если в вашей среде конкретные файлы должны присутствовать в домашних каталогах всех пользователей, вы должны позаботиться об этом, добавив файлы в каталог skeleton.

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

Для изменения свойств пользователя применяются те же правила, что и для создания учетных записей пользователей.
Вы можете работать непосредственно в файлах конфигурации с помощью vipw или использовать инструменты командной строки.
Конечная утилита командной строки для изменения пользовательских свойств - usermod. Его можно использовать для установки всех свойств пользователей, хранящихся в /etc/passwd и /etc/shadow, а также некоторых дополнительных задач, таких как управление членством в группе. Есть только одна задача, которую она не выполняет: установка паролей. Хотя в usermod есть опция -p, которая сообщает чтобы вы "использовали зашифрованный пароль для нового пароля", он ожидает, что вы выполните шифрование пароля перед добавлением учетной записи пользователя. Это не делает его особенно полезным. Если от имени пользователя root вы хотите изменить пароль пользователя, вам лучше использовать команду passwd.

Файлы конфигурации для управления пользователями по умолчанию

При работе с инструментами как useradd предполагаются некоторые значения по умолчанию. Эти значения по умолчанию установлены в двух файлах конфигурации: /etc/login.defs и /etc/default/useradd. Ниже показано содержимое /etc/default/useradd.

[root@localhost skel]# cat /etc/default/useradd
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

Как показано выше файл /etc/default/useradd содержит некоторые значения по умолчанию, которые применяются при использовании useradd.

В файле /etc/login.defs установлены различные переменные, связанные с логином. Этот файл используется различными командами и относится к настройке соответствующей среды для новых пользователей.

Список некоторых наиболее важных свойств, которые можно установить в /etc/login.defs:

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

ENV_PATH: определяет переменную $PATH, список каталогов, в которых следует искать исполняемые файлы после входа в систему.

PASS_MAX_DAYS, PASS_MIN_DAYS и PASS_WARN_AGE: определение свойств срока действия пароля по умолчанию при создании новых пользователей.

UID_MIN: первый UID, который будет использоваться при создании новых пользователей.

CREATE_HOME: указывает, следует ли создавать домашний каталог для новых пользователей.

USERGROUPS_ENAB: установите yes, чтобы создать личную группу для всех новых пользователей. Это означает, что у нового пользователя есть группа с тем же именем, что и пользователь, в качестве группы по умолчанию. Если установлено значение no, все пользователи становятся членами группы users.

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

Вы узнали о свойствах пароля, которые можно установить в /etc/shadow. Вы можете использовать две команды для изменения этих свойств для пользователей: chage и passwd. Команды довольно просты. Например, команда passwd -n 30 -w 3 -x 90 user устанавливает для пароля пользователя user минимальный период использования 30 дней и срок его действия через 90 дней, когда за 3 дня до истечения срока действия генерируется предупреждение.

Многие из задач, которые можно выполнить с помощью passwd, можно выполнить и с помощью chage. Например, используйте chage -E 2019-12-31 user1, чтобы срок действия учетной записи пользователя user1 истек 31 декабря 2019 г.

Чтобы увидеть текущие настройки управления паролями, используйте chage –l.

linux:~ # chage -l user
Last password change : Sep 24, 2019
Password expires : Dec 31, 2019
Password inactive : never
Account expires : never
Minimum number of days between password change : 30
Maximum number of days between password change : 90
Number of days of warning before password expir : 3

Создание пользовательской среды

Когда пользователь входит в систему, создается среда. Среда состоит из нескольких переменных, которые определяют, как используется пользовательская среда. Например, одной из таких переменных является переменная $PATH, которая определяет список каталогов, которые следует искать, когда пользователь вводит команду.

Для создания пользовательской среды несколько файлов играют роль:
  • /etc/profile: используется для настроек по умолчанию для всех пользователей при запуске оболочки входа;
  • /etc/bashrc: используется для определения значений по умолчанию для всех пользователей при запуске подоболочки;
  • ~/.profile: специальные настройки для одного пользователя, применяемые при запуске оболочки входа;
  • ~/.bashrc: специальные настройки для одного пользователя, применяемые при запуске подоболочки.
При входе в систему файлы читаются в этом порядке, и к ним применяются переменные и другие параметры, определенные в этих файлах. Если переменная или параметр встречаются в более чем одном файле, побеждает последний.

В этом примере вы применяете общие решения для создания учетных записей пользователей.

1. Введите vim /etc/login.defs, чтобы открыть файл конфигурации /etc/login.defs, и измените несколько параметров, прежде чем приступить к настройке параметров файла. Найдите параметр CREATE_HOME и убедитесь, что он установлен на "yes". Также установите параметр USERGROUPS_ENAB на "no", что означает, что новый пользователь добавляется в группу с тем же именем, что и пользователь, и больше ничего;

2. Введите cd /etc/skel, чтобы перейти в каталог /etc/skell. Введите mkdir Pictures и mkdir Documents, чтобы добавить два каталога по умолчанию во все домашние каталоги пользователей. Также измените содержимое файла .bashrc, и вставьте строку export EDITOR=/usr/bin/vim, эта строка устанавливает редактор по умолчанию для инструментов, которые должны изменять текстовые файлы;

3. Введите useradd linda, чтобы создать учетную запись для пользователя linda. Затем введите id linda, чтобы убедиться, что linda является членом группы с именем linda и больше ничего. Также убедитесь, что каталоги Pictures и Documents были созданы в домашнем каталоге linda;

4. Используйте passwd linda, чтобы установить пароль для пользователя, которого вы только что создали;

5. Введите passwd -n 30 -w 3 -x 90 linda, чтобы изменить свойства пароля. Срок действия пароля истекает через 90 дней (-x 90). За три дня до истечения срока действия пользователь получит предупреждение (-w 3), и пароль должен быть использован не менее 30 дней, прежде чем (-n 30) его можно будет изменить;

6. Создайте еще несколько пользователей: lisa, lori и bob, используя for i in lisa lori bob; do useradd $i; done;

7. Введите grep lori /etc/passwd /etc/shadow/ etc/group. Это покажет, что пользователь lori создан во всех трех критических файлах, и подтверждает, что они были установлены правильно.

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

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

Группы в Linux

Пользователи Linux могут быть членами двух разных типов групп. Во-первых, есть основная группа. Каждый пользователь должен быть членом основной группы, и существует только одна основная группа. При создании файлов основная группа становится владельцем группы этих файлов.  Пользователи также могут получить доступ ко всем файлам, к которым имеет доступ их основная группа.  Членство в основной группе пользователей определено в /etc/passwd; сама группа хранится в файле конфигурации /etc/group.

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

Создание групп с помощью vigr или groupadd

Как и в случае с созданием пользователей, существуют также различные варианты создания групп.
Файлы конфигурации группы можно изменить напрямую, используя vigr или утилиту командной строки groupadd.

Создание групп с помощью vigr

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

kvm:x:36:qemu
qemu:x:107:
libstoragemgmt:x:994:
rpc:x:32:
rpcuser:x:29:
"/etc/group.edit" 65L, 870C

Следующие поля используются в /etc/group:
  • Имя группы: как следует из названия поля, оно содержит название группы.
  • Групповой пароль: функция, которая больше не используется. Групповой пароль может использоваться пользователями, которые хотят временно присоединиться к группе, поэтому доступ к файлам, к которым у группы есть доступ, разрешен.
  • ID группы: уникальный числовой идентификационный номер группы.
  • Участники: здесь вы найдете имена пользователей, которые являются членами этой группы в качестве дополнительной группы. Обратите внимание, что он не показывает пользователей, которые являются членами этой группы, в качестве основной группы.

Создание групп с помощью groupadd

Другой способ создания новых групп - использование команды groupadd. Эта команда проста в использовании. Просто используйте groupadd, за которым следует имя группы, которую вы хотите добавить. Существуют некоторые дополнительные параметры, единственным из которых является -g, который позволяет вам указать ID группы при создании группы.

Управление свойствами группы

Для управления свойствами группы доступен groupmod. Вы можете использовать эту команду для изменения имени или идентификатора группы, но она не позволяет добавлять членов группы. Для этого вы используете usermod. Как обсуждалось ранее, usermod -aG добавит пользователей в новые группы, которые будут использоваться в качестве их вторичной группы. Поскольку группа не имеет много свойств, довольно часто, что свойства группы управляются непосредственно в файле /etc/group с помощью команды vigr.
Поскольку членство в группах пользователей определяется в двух разных местах, может быть трудно определить, в какие именно группы входит пользователь. Удобная команда для проверки этого - groupmems. Используйте, например, команду groupmems -g sales -l, чтобы увидеть, какие пользователи являются участниками группы sales. Это показывает пользователей, которые являются членами этой группы в качестве назначения вторичной группы, а также пользователей, которые являются членами этой группы в качестве назначения основной группы.

Пример работы с группами

В этом примере вы создаете две группы и добавите в эти группы некоторых пользователей.

1. Введите groupadd sales, а затем groupadd account, чтобы добавить группы с именами sales и account.

2. Используйте usermod, чтобы добавить пользователей linda и lisa в группу продаж, а lori и bob в групповую учетную запись:
usermod -aG sales linda
usermod -aG sales lisa
usermod -aG account lori
usermod -aG account bob

3. Введите id linda, чтобы убедиться, что пользователь linda правильно добавлен в группу sales. В результатах этой команды вы видите, что Линда назначена группе с gid=100(users). Это ее основная группа. С параметром groups упоминаются все группы, членом которых она является в качестве вторичной группы:
linux:~ # id linda
uid=1000(linda) gid=100(users) groups=1000(sales),100(users)

Резюме

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

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