Полное руководство по утилите useradd

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

Полное руководство по утилите useradd

Введение

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

Команда useradd предоставляет гибкость при создании пользователей, позволяя настроить множество параметров, таких как:

  • Имя пользователя;
  • Группы, в которые будет входить пользователь;
  • Домашний каталог пользователя;
  • Оболочка, которая будет использоваться по умолчанию;
  • Дата истечения срока действия учетной записи.

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

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

Основные сведения об утилите useradd

Утилита useradd — это базовая команда для создания новых пользователей в операционных системах Linux и Unix. Она используется для внесения информации о новом пользователе в системные файлы и настройки параметров его учетной записи. При выполнении команды добавляются записи в такие файлы, как:

  • /etc/passwd: хранит основные сведения об учетных записях пользователей;
  • /etc/shadow: содержит зашифрованные пароли и настройки безопасности пользователей;
  • /etc/group: управляет группами пользователей.

Утилита выполняет следующие основные задачи:

  • Добавление записи нового пользователя в системные файлы;
  • Создание домашнего каталога пользователя (при необходимости);
  • Назначение групп, идентификаторов (UID, GID) и оболочки;
  • Указание дополнительных параметров, таких как срок действия учетной записи или комментарий.

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

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

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

Команда useradd имеет следующий общий вид:

useradd [опции] имя_пользователя

Здесь:

  • имя_пользователя: имя новой учетной записи, которая будет создана;
  • опции: дополнительные параметры, уточняющие настройки учетной записи.

Рассмотрим основные элементы синтаксиса:

  • Имя пользователя: должно быть уникальным в системе, не содержать пробелов и специальных символов, а также начинаться с буквы.
  • Опции: позволяют указать дополнительные параметры, такие как создание домашнего каталога (-m), назначение групп (-G) и оболочки (-s).

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

useradd newuser

Эта команда добавит пользователя с именем newuser с настройками по умолчанию.

Параметры команды useradd

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

  • -c "комментарий": добавляет описание или комментарий к учетной записи. Например: useradd -c "Иван Иванов, разработчик" ivan
  • -d /путь/к/каталогу: задает домашний каталог пользователя. Если не указать этот параметр, будет использован каталог по умолчанию. Пример: useradd -d /home/custom ivan
  • -e ДД-ММ-ГГГГ: указывает дату, после которой учетная запись будет отключена. Пример: useradd -e 2024-12-31 ivan
  • -f дни: задает количество дней после истечения пароля, в течение которых учетная запись будет активна. Пример: useradd -f 7 ivan
  • -g группа: задает основную группу для пользователя. Например: useradd -g developers ivan
  • -G группы: назначает дополнительные группы, в которые будет входить пользователь. Пример: useradd -G developers,admins ivan
  • -m: создает домашний каталог, если он отсутствует. Пример: useradd -m ivan
  • -s оболочка: задает оболочку для пользователя. Например: useradd -s /bin/bash ivan
  • -u UID: устанавливает идентификатор пользователя. Пример: useradd -u 1001 ivan

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

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

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

useradd имя_пользователя

Например:

useradd john

После выполнения команды:

  • В файле /etc/passwd появится запись о новом пользователе с именем john;
  • UID (идентификатор пользователя) и GID (идентификатор группы) будут выбраны автоматически из доступного диапазона;
  • Домашний каталог пользователя (/home/john) не будет создан, если не указана опция -m;
  • Оболочка пользователя будет установлена по умолчанию, например, /bin/bash.

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

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

При создании пользователя команда useradd позволяет настроить различные параметры, такие как группа, оболочка, домашний каталог и срок действия учетной записи. Рассмотрим, как это сделать:

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

Чтобы создать пользователя с домашним каталогом, используйте опцию -m. Например:

useradd -m alex

Эта команда создаст каталог /home/alex и установит его владельцем пользователя alex.

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

Основная группа задается с помощью параметра -g:

useradd -g developers alex

Дополнительные группы можно указать с опцией -G:

useradd -G admins,devops alex

Назначение оболочки

Чтобы указать пользовательскую оболочку, примените опцию -s. Например:

useradd -s /bin/zsh alex

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

Вы можете комбинировать параметры для одновременной настройки нескольких характеристик:

useradd -m -g developers -G admins,devops -s /bin/bash alex

Этот пример создает пользователя alex с домашним каталогом, группами developers и admins, devops, а также оболочкой Bash.

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

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

Указание даты истечения учетной записи

С помощью опции -e можно установить точную дату, когда учетная запись будет отключена:

useradd -e 2024-12-31 alex

После указанной даты пользователь не сможет войти в систему.

Настройка периода после истечения пароля

Опция -f задает количество дней, в течение которых учетная запись будет активна после истечения срока действия пароля:

useradd -f 7 alex

В данном случае учетная запись будет отключена через 7 дней после истечения срока действия пароля.

Комбинированный пример

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

useradd -e 2024-12-31 -f 7 alex

Этот пример задает дату истечения учетной записи 2024-12-31 и позволяет использовать учетную запись еще 7 дней после истечения пароля.

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

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

  • /etc/passwd: содержит основные сведения о пользователях, такие как имя, UID, GID, домашний каталог и оболочка;
  • /etc/shadow: хранит информацию о паролях и сроках их действия;
  • /etc/group: содержит данные о группах и их членах.

Пример просмотра файла /etc/passwd

Используйте команду cat для просмотра файла:

cat /etc/passwd

Вы увидите строку, соответствующую созданной учетной записи:

alex:x:1001:1001::/home/alex:/bin/bash

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

Для получения подробной информации о пользователе можно воспользоваться командой id:

id alex

Вывод будет включать UID, GID и группы пользователя.

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

При создании нового пользователя с помощью команды useradd используются настройки по умолчанию, которые можно изменить. Эти настройки хранятся в файле /etc/default/useradd и скрипте /etc/skel.

Редактирование файла /etc/default/useradd

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

sudo nano /etc/default/useradd

Пример содержимого файла:

GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash

Вы можете изменить значения:

  • GROUP: основная группа пользователя;
  • HOME: путь к домашнему каталогу;
  • INACTIVE: дни неактивности до отключения учетной записи;
  • EXPIRE: дата истечения учетной записи;
  • SHELL: оболочка по умолчанию.

Использование шаблона /etc/skel

Каталог /etc/skel содержит файлы и директории, которые копируются в домашний каталог нового пользователя. Вы можете добавить сюда собственные файлы конфигурации или изменить существующие.

Например, добавьте в /etc/skel файл .custom_profile:

echo "export PATH=/custom/path:$PATH" > /etc/skel/.custom_profile

Теперь каждый новый пользователь получит этот файл в своем домашнем каталоге.

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

Для удаления учетной записи используется команда userdel. Она позволяет полностью удалить пользователя из системы, включая его домашний каталог, или оставить данные.

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

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

sudo userdel имя_пользователя

Пример:

sudo userdel john

Эта команда удаляет запись о пользователе, но его домашний каталог и файлы остаются.

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

Чтобы удалить учетную запись и домашний каталог, используйте опцию -r:

sudo userdel -r john

Эта команда удаляет домашний каталог /home/john, а также все файлы, принадлежащие пользователю.

Удаляет ли sudo userdel -r файлы вне домашней директории?

Команда sudo userdel -r john не удаляет файлы, принадлежащие пользователю, которые находятся вне его домашней директории.

Что удаляет флаг -r?

  • Учетную запись пользователя из системных файлов (/etc/passwd, /etc/shadow, /etc/group).
  • Домашний каталог пользователя (например, /home/john), включая все файлы и подкаталоги в нем.
  • Почтовый ящик пользователя (обычно расположен в /var/spool/mail/john или /var/mail/john).

Что не удаляет флаг -r?

  • Файлы и директории, принадлежащие пользователю, которые находятся в других местах файловой системы, например, в /var/www, /tmp, или где-либо еще.

Как найти оставшиеся файлы пользователя?

После удаления пользователя можно найти оставшиеся файлы с помощью команды find, указав UID удаленного пользователя:

sudo find / -uid <UID>

Пример: Если UID пользователя john был 1001, команда будет выглядеть так:

sudo find / -uid 1001

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

Как удалить оставшиеся файлы?

Для удаления найденных файлов выполните следующую команду:

sudo find / -uid <UID> -exec rm -rf {} +

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

Проверьте свои знания утилиты useradd при помощи теста:

Может быть интересно

Свяжитесь с автором проекта

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

Напишите нам, если нашли ошибку в тесте

Мы обязательно  ответим Вам и дадим подробные комментарии!