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

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

Table of Contents

Linux

Что такое пользователи и группы Linux?

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

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

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

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

Понимание файла /etc/passwd

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

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

Давайте посмотрим на строку из файла /etc/passwd:

Эта строка содержит информацию о пользователе 'user'. Она показывает, что пользователь 'user' имеет идентификатор пользователя (UID) и идентификатор группы (GID) 1001, его домашний каталог - '/home/user', а его оболочка по умолчанию - '/bin/bash'.

Понимание файла /etc/shadow

В файле /etc/shadow, напротив, хранится информация о паролях пользователей в зашифрованном виде, а также информация о сроках действия паролей. В целях безопасности он доступен для чтения только пользователю root.

Пример файла /etc/shadow

Строка из файла /etc/shadow может выглядеть следующим образом:

Здесь хранится пароль 'user' (в зашифрованном виде), а также сведения о старении пароля.

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

Управление учетными записями пользователей осуществляется с помощью команд useradd, usermod и userdel.

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

Чтобы создать пользователя:

Эта команда создает нового пользователя 'user2' с домашним каталогом (-m) и установленной по умолчанию оболочкой '/bin/bash' (-s).

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

Чтобы изменить существующего пользователя:

sudo usermod -s /bin/zsh user3

Эта команда изменяет стандартную оболочку 'user3' на '/bin/zsh'.

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

Чтобы удалить пользователя:

Эта команда удаляет пользователя 'user' и его домашний каталог (-r).

Управление требованиями к паролям

Безопасность паролей очень важна. Команда passwd позволяет обновить пароль пользователя. Файл /etc/login.defs может быть модифицирован для установки парольных политик.
Пример изменения пароля пользователя

Чтобы изменить пароль пользователя 'user2':

Эта команда предложит вам ввести новый пароль для 'user2'.

Пример установки политик паролей

Чтобы задать политики паролей, можно отредактировать файл /etc/login.defs:

В этом файле можно задать такие политики, как PASS_MAX_DAYS (максимальное количество дней, в течение которых пароль остается действительным).

Управление группами в Linux

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

Понимание файла /etc/group

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

Пример файла /etc/group

Строка из файла /etc/group может выглядеть следующим образом:

Эта строка сообщает нам, что существует группа с именем 'developers' и идентификатором группы (GID) 1002. Пользователи 'user' и 'user2' являются членами этой группы.

Создание, изменение и удаление групп

Управление группами осуществляется с помощью команд groupadd, groupmod и groupdel.

Пример создания группы

Чтобы создать группу:

Эта команда создает новую группу с именем 'developers'.

Пример изменения группы

Чтобы изменить группу:

Эта команда переименовывает группу 'developers' в 'dev'.

Пример удаления группы

Чтобы удалить группу:

Эта команда удаляет группу 'developers'.

Управление членством в группах

Добавить или удалить пользователей из группы можно с помощью команды usermod.

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

Чтобы добавить пользователя 'user' в группу 'developers':

Эта команда добавляет пользователя 'user' в группу 'developers'.

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

Чтобы удалить пользователя 'user3' из группы 'developers':

Эта команда удаляет пользователя 'user3' из группы 'developers'.

Расширенные сценарии и примеры управления пользователями и группами в Linux

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

Пример 1: Изменение домашней директории по умолчанию для новых пользователей

Когда Вы создаете нового пользователя, Linux обычно устанавливает его домашний каталог как /home/username. Однако Вы можете захотеть изменить местоположение по умолчанию для новых пользователей.

Эта команда создает нового пользователя с именем 'user', но вместо того, чтобы поместить его домашний каталог в каталог '/home', она помещает его в каталог '/var/employees'. Для установки домашнего каталога используется опция -d, за которой следует желаемый путь.

Пример 2: Создание пользователя с определенным идентификатором пользователя и группы

Иногда для совместимости с существующей системой или в целях обеспечения безопасности требуется создать пользователя с определенным идентификатором пользователя (UID) и идентификатором группы (GID).

Эта команда создает пользователя 'user' с UID, равным 2001, и GID, равным 3001.

Пример 3: Создание общей группы для проекта

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

Сначала мы создадим группу под названием 'projectA'. Затем создадим каталог для файлов группы projectA в '/opt/projectA'. Затем с помощью chgrp меняем группу '/opt/projectA' на 'projectA'. Наконец, мы устанавливаем права доступа для '/opt/projectA' на 2775. Это гарантирует, что все новые файлы, созданные в каталоге, будут принадлежать группе 'projectA' (именно это и делает '2' в начале разрешения - устанавливает бит setgid).

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

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

Эта команда добавляет пользователя 'user' в группы 'projectA' и 'projectB'.

Пример 5: Блокировка и разблокировка учетных записей пользователей

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

Эта команда блокирует учетную запись пользователя 'user', не позволяя ему войти в систему. Вы можете разблокировать ее снова с помощью команды:

Лучшие практики управления пользователями и группами

Вот несколько лучших практик управления пользователями и группами в Linux:

  • Принцип наименьших привилегий: Всегда назначайте минимальные права, необходимые пользователю для выполнения своих обязанностей.
  • Регулярный аудит: Регулярно проверяйте и очищайте неактивных пользователей и группы. Это позволит поддерживать безопасность системы и эффективность использования ресурсов.
  • Строгие политики паролей: Внедряйте и применяйте надежные политики паролей. Сюда входят правила сложности паролей, сроки их действия, а также политики, запрещающие повторное использование паролей.
  • Использование Sudo: Вместо того чтобы делиться паролем root, используйте команду sudo для предоставления пользователям временных повышенных привилегий. Это гарантирует, что все действия с привилегиями будут регистрироваться и проверяться.
  • Разделяйте системных и обычных пользователей: Разделяйте системных и обычных пользователей. Системные учетные записи (UID которых по умолчанию не превышает 1000) не предназначены для регулярного использования.
  • Осторожно управлять членством в группах: Тщательно управляйте членством в группах. Ненужный доступ может привести к неоправданному риску. Например, не все пользователи должны входить в группы sudo или admin.

Заключение

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

Понравилась статья? Поделиться с друзьями:
Добавить комментарий