Управление пользователями в Linux
В современных операционных системах можно создавать несколько учетных записей, каждая из которых функционирует независимо, не влияет на работу других пользователей и запущенных программ. Учетные записи могут быть изменены, например, можно корректировать имена, идентификаторы и другие параметры. Рассмотрим управление пользователями в Linux на примере дистрибутива Ubuntu.Где содержится информация о пользователях
В Linux-системах, независимо от того, был ли пользователь добавлен вручную или создан в процессе установки программного обеспечения, данные находятся в /etc/passwd.Файл имеет следующую структуру: имя пользователя (логин):пароль:номер пользователя:номер группы пользователя:дополнительные сведения:путь к домашней директории:путь к командной оболочке.
Поля в passwd
Имя пользователя - этот параметр служит для идентификации в системе и используется при входе. Длина имени может варьироваться от 1 до 32 символов.Пароль - в Linux не сохраняется в открытом виде, что делает систему более безопасной. Используется один из специальных символов:
- x - пароль хранится в зашифрованном виде вместе с "солью" - случайным набором символов, который дописывается к хэш-сумме пароля во время его создания. Сам зашифрованный пароль находится в файле /etc/shadow.
- \ - этот символ означает, что у пользователя нет разрешения на вход в систему.
Номер пользователя (UID) - каждому пользователю присваивается уникальный идентификатор в виде положительного числа.
0 - принадлежит пользователю root с максимальными привилегиями.
Числа от 1 до 499 зарезервированы для псевдо-пользователей, которые создаются вместе с установкой программ.
Для обычных пользователей применяются номера, начинающиеся с 500 или 1000, но в отличие от root их можно изменять.
Номер группы пользователя (GID) - при создании пользователя в Linux автоматически создается группа с таким же именем, и пользователю присваивается GID. Группы объединяют пользователей с целью назначения прав на доступ к системным объектам (файлы или директории). Каждый пользователь должен принадлежать минимум к одной группе. Как и UID, группам также присваиваются уникальные идентификаторы.
Дополнительная информация - можно указать полное имя, адрес или номер телефона в учетной записи пользователя или оставить поля пустыми.
Полный путь до домашней директории - каждый пользователь имеет домашний каталог, который по умолчанию находится в /home. Можно выбрать другую директорию.
Полный путь до командной оболочки и запрет на подключение - пользователю может быть назначена командная оболочка, в которой он будет выполнять команды (чаще это bash или shell (sh)). Также можно поставить запрет на использование учетной записи для входа на сервер.
Root, sudo и административные права
В Linux существует два основных метода аутентификации пользователей: root и пользователь без прав root. Рекомендуется избегать использования root по умолчанию. Пользователь root может выполнять любые действия, и даже случайное удаление важных данных не будет сопровождаться предупреждением. Нужно входить в систему под обычной учетной записью, повышая привилегии до уровня root только тогда, когда это действительно необходимо. В большинстве случаев для выполнения стандартных пользовательских задач права root не требуются, но для определенных административных операций они необходимы.В некоторых дистрибутивах, например, в Ubuntu, учетная запись root по умолчанию отключена, и вход в систему под этой учетной записью невозможен. При установке Ubuntu создается пользователь, который автоматически добавляется в группу администраторов и может выполнять команды с правами root, используя команду `sudo`, которая временно предоставляет необходимые привилегии.
Управление пользователями и группами в Linux
Существует набор команд, который позволяет администраторам создавать, удалять и изменять учетные записи пользователей, а также назначать права доступа и ограничивать доступ к системным ресурсам.В Linux пользовательская учетная запись не всегда соответствует конкретному человеку, который работает за компьютером. Это объект, созданный в системе Linux для предоставления определенных прав, необходимых для выполнения задач. Такие учетные записи могут быть связаны как с людьми, так и с различными сервисами.
Как добавить пользователя в Linux через useradd
Процесс добавления нового пользователя в Linux можно разделить на два этапа: создание пользователя и установка пароля для него.Первый шаг заключается в использовании команды `useradd`:
useradd [опции создания] [логин]
Эта команда опирается на ряд предустановленных настроек, которые определены в файлах `/etc/default/useradd` и `/etc/login.defs`. Чтобы просмотреть основные настройки, можно воспользоваться командой:useradd -D
Основные параметры useradd
- GROUP: указывает идентификатор GID группы, в которую будет добавлен новый пользователь.
- HOME: определяет базовый каталог, в котором будет размещена домашняя директория пользователя.
- INACTIVE: задает количество дней до блокировки учетной записи после того, как пароль станет недействительным. Значение «-1» отключает эту опцию.
- EXPIRE: указывает дату, до которой учетная запись будет активна. Если эта опция не задана, учетная запись будет действовать без ограничений.
- SHELL: задает командную оболочку, которая будет использоваться пользователем.
- SKEL: путь к директории, хранящей шаблонные файлы, которые копируются в домашнюю директорию нового пользователя при его создании.
- CREATE_MAIL_SPOOL: определяет, следует ли создавать почтовую директорию для нового пользователя в `/var/spool/mail`.
useradd test-user
Если требуется настроить пользователя с определенными параметрами - следует использовать расширенные опции команды `useradd`.- `-m`: создает домашнюю директорию, если она еще не существует.
- `-d /home/tester-user`: указывает домашнюю директорию, которая будет назначена пользователю.
- `-c "Иван Петров"`: добавляет комментарий к учетной записи, например, имя и фамилию.
- `-g tester`: указывает основную группу, к которой будет принадлежать пользователь. Можно указать как GID, так и имя группы, которая должна уже существовать в системе. Эта опция может использоваться вместе с ключом `-N`, отменяющим автоматическое создание группы с именем пользователя.
- `-G users, wheel`: задает список дополнительных групп, к которым будет добавлен пользователь. Группы указываются через запятую без пробелов.
- `-s /bin/bash`: задает командную оболочку, которая будет применяться пользователем.
- `-r`: создает системного пользователя для запуска служб. Для него по умолчанию не создается домашняя директория, и данные не добавляются в `/etc/shadow`.
- `-u`: указывает уникальный UID (идентификатор пользователя). UID должен быть положительным целым числом и не должен повторяться среди других пользователей.
- `-e 2025-02-01`: указывает дату, до которой учетная запись будет активна. Дата задается в формате `YYYY-MM-DD`.
- `-f 3`: задает количество дней до блокировки учетной записи после истечения срока действия пароля.
useradd -m -u 777 -d /home/users/tester-userer -c "Тестер" -e 2025-01-01 -s /bin/bash tester-user
В этом примере создается пользователь `tester-user` с UID 777, домашней директорией `/home/users/tester-user`, комментарием "Тестер" и доступом к командной оболочке `bash`. Учетная запись будет активна до 01.01.2025.После создания учетной записи пользователя важно настроить надежный пароль. Для этого используется команда: passwd tester-user.
Если требуется изменить данные пользователя `tester-user`, команда будет выглядеть примерно так:
usermod -l tester-user2 -m -d /home/tester-user2 -c "Terminator" -u 1945 -e 2025-02-02 -f -1 tester-user
В этом примере мы меняем логин на `tester-user2`, указываем новую домашнюю директорию `/home/tester-user2` с переносом файлов, обновляем комментарий, UID, срок действия аккаунта и отменяем блокировку, если пароль устарел.Система попытается автоматически применить новые данные ко всем файлам и директориям пользователя. После внесения изменений рекомендуется проверить и при необходимости исправить права доступа к файлам, особенно в тех случаях, когда изменения не были применены автоматически.
Создание пользователя через adduser
Useradd - это утилита низкого уровня для добавления пользователей в Linux. Adduser - более удобный инструмент, который фактически является оболочкой над командами useradd, groupadd и usermod. Не во всех дистрибутивах Linux она есть, но если в вашем она доступна - рекомендуется использовать именно ее.Вместо ivanov вставьте имя нового пользователя:
adduser ivanov
После выполнения команды необходимо задать пароль для нового пользователя и ввести дополнительную информацию. Эти данные вводить не обязательно - просто нажимайте Enter, чтобы пропустить шаг. Создастся пользователь с указанным именем, группа, его домашняя папка в каталоге /home/имя_пользователя, в которую продублируются файлы из директории /etc/skel.
Удаление пользователей
Перед удалением важно убедиться, что под учетной записью не запущены никакие активные процессы и файлы не находятся в процессе редактирования. Несоблюдение этого условия может привести к сбоям в системе.Для удаления учетных записей используется команда `userdel`. Ее синтаксис аналогичен другим командам:
userdel [что удаляем] [кого]
Команда имеет два основных параметра.- `-r`: Удаляет домашнюю директорию пользователя и его почтовую очередь.
- `-f`: Отключает механизм защиты. При активации этой опции пользователь будет удален даже в случае наличия активных процессов и других потенциальных конфликтов.
Группы пользователей в Linux
Информация о группах хранится в файле `/etc/group`. Группы применяются для делегирования прав доступа на файлы, каталоги или скрипты одновременно нескольким пользователям. Например, работа с FTP-сервером. Если вы выбрали каталог для работы с файлами, можно создать группу и выдать ей права на эту папку. Впоследствии, добавляя новых пользователей в группу, вы автоматически предоставляете им доступ к FTP-каталогу, без необходимости настраивать права для каждого пользователя в отдельности.Создание групп
Для создания новой группы используется команда `groupadd` с параметрами.- `-f`: Если группа уже существует - команда завершится без ошибки.
- `-g`: Назначает уникальный GID для новой группы.
- `-r`: Создает системную группу.
- `-p`: Устанавливает пароль для группы, который требуется при входе в группу с помощью команды `newgrp`. Однако этот параметр не рекомендуется использовать по соображениям безопасности, так как пароль просматривается в истории команд.
Изменение групп
Для внесения изменений в группы используется команда `groupmod`. Варианты задаются с помощью параметров.`-g`: Изменяет GID группы.
`-n`: Переименовывает группу, присваивая ей новое имя.
Если необходимо изменить имя группы с `group1` на `new-group`, то команда будет выглядеть следующим образом:
groupmod -n new-group group1
Удаление групп
Удаление группы невозможно, если она является основной для какого-либо существующего пользователя. В таком случае сначала нужно удалить всех пользователей из этой группы. Сам процесс удаления осуществляется с помощью команды:groupdel group1
После удаления важно проверить, что на сервере не осталось файлов и данных, принадлежащих этой группе. Это необходимо для предотвращения возможных конфликтов в системе.Управление пользователями в группе
Осуществляется утилитой `gpasswd`. Она предоставляет несколько полезных параметров, но в одной команде можно использовать только один параметр.gpasswd [что сделать] [в какой группе]
- `-a`: В Linux добавить пользователя в группу.
- `-d`: Удаляет пользователя из группы.
- `-A пользователь1, пользователь2`: Этот параметр доступен только пользователям с правами администратора (`root`). Назначает список администраторов группы.
- `-M пользователь1, пользователь2`: Также доступен только администраторам. Назначает список участников группы.
- `-r`: Отключает пароль для группы и позволяет использовать команду `newgrp` только членам группы для подключения.
- `-R`: Отключает внешний доступ к группе, ограничивает использование команды `newgrp` только членами группы.
Добавляем пользователя в группу
Достаточно выполнить следующую команду:gpasswd -a new-user test-group
или воспользоваться командой:usermod -a -G new-group tester-user
Если же нужно назначить `new-group` в качестве основной группы для пользователя `tester-user`, команда будет выглядеть так:usermod -g new-group tester-user
Любой пользователь может самостоятельно авторизоваться и подключиться к новой группе с помощью команды newgrp.Заключение
Мы рассмотрели основные способы создания, удаления и модификации пользователей и групп, а также примеры использования команд. Их грамотное применение повышает безопасность и стабильность работы серверов, обеспечивает эффективное администрирование.11 Sep 2024, 18:29:31