Цель урока: Перейти от простого создания пользователей к их полноценному администрированию. Мы глубоко изучим команды для модификации существующих пользователей (usermod) и групп (groupmod), научимся изменять их ключевые атрибуты, такие как командная оболочка (shell) или домашний каталог. Самое главное - мы разберем структуру системных файлов (/etc/passwd/etc/shadow/etc/group), чтобы вы понимали, где и как Linux хранит всю информацию о пользователях.

Часть 1: Теория. Где "живут" пользователи? Три главных файла

Когда вы создаете пользователя командой adduser, эта команда на самом деле вносит записи в несколько ключевых текстовых файлов. Понимание их структуры - это ключ к пониманию всей системы пользователей Linux.

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

    grep "^root:" /etc/passwd

    Результат будет примерно таким: root:x:0:0:root:/root:/bin/bash

    Разбор полей:

    • root: Имя пользователя (логин).

    • x: Заглушка для пароля. Раньше здесь хранился зашифрованный пароль, но это было небезопасно. Теперь он хранится в другом, более защищенном файле.

    • 0UID (User ID) - уникальный числовой идентификатор пользователя. UID 0 - это всегда root.

    • 0GID (Group ID) - ID основной группы пользователя.

    • root: Комментарий. Обычно здесь указывают полное имя пользователя.

    • /root: Путь к домашнему каталогу.

    • /bin/bash: Командная оболочка (shell), которая запускается при входе пользователя в систему.

  2. /etc/shadow - Сейф с паролями
    Этот файл может читать только root. Здесь хранятся зашифрованные (хэшированные) пароли и информация об их сроке действия. Мы не будем редактировать его вручную, но важно знать о его существовании.

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

    grep "sudo" /etc/group

    Результат: sudo:x:27:your_admin_user

    Разбор полей:

    • sudo: Имя группы.

    • x: Заглушка для пароля группы (редко используется).

    • 27GID (Group ID) - уникальный числовой идентификатор группы.

    • your_admin_user: Список пользователей (через запятую), которые являются членами этой группы (помимо тех, для кого эта группа является основной).

Часть 2: Практика. usermod - модифицируем пользователей

usermod (user modify) - это ваш основной инструмент для изменения атрибутов уже существующего пользователя.

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

# Напоминаю, команда adduser создает пользователя интерактивно
adduser testuser

(Задайте ему простой пароль, остальное можно оставить по умолчанию).

1. Изменение командной оболочки (-s, --shell)
Командная оболочка (shell) - это программа, с которой взаимодействует пользователь. /bin/bash - это стандартная интерактивная оболочка. Но иногда нужно запретить пользователю входить в систему. Для этого ему назначают "пустую" оболочку.

  • Сценарий: testuser - это системный пользователь, который нужен для работы какой-то программы, но он не должен иметь возможности логиниться по SSH.

    # usermod -s [путь_к_оболочке] [имя_пользователя]
    usermod -s /sbin/nologin testuser

    Теперь, если вы попробуете зайти по SSH под testuser, система немедленно разорвет соединение.
    Проверка: grep "testuser" /etc/passwd покажет, что последнее поле изменилось.
    Чтобы вернуть все как было: usermod -s /bin/bash testuser

2. Добавление пользователя в дополнительные группы (-aG)
Мы уже делали это, когда давали пользователю права sudo. Давайте рассмотрим это в общем виде.

  • -G (--groups): Задает список дополнительных групп.

  • -a (--append): ОБЯЗАТЕЛЬНЫЙ флаг, который добавляет пользователя в новые группы, не удаляя из старых. Если вы забудете -a, пользователь будет удален из всех групп, кроме указанных!

  • Сценарий: Нам нужно, чтобы testuser мог работать с файлами веб-сервера, которые часто принадлежат группе www-data.

    # usermod -aG [имя_группы] [имя_пользователя]
    usermod -aG www-data testuser

    Проверка: Команда groups testuser покажет, что он теперь состоит в группах testuser и www-data. Команда grep "www-data" /etc/group покажет, что testuser появился в списке этой группы.

3. Изменение домашнего каталога (-d, --home)

  • Сценарий: Мы решили, что все проекты этого пользователя должны лежать в /var/projects/testuser.

    # usermod -d [новый_путь] [имя_пользователя]
    usermod -d /var/projects/testuser testuser

    Важно: Эта команда только меняет запись в /etc/passwd. Она не создает новый каталог и не перемещает старые файлы. Чтобы переместить содержимое старого домашнего каталога в новый, используется ключ -m (--move-home).

    # Создадим новый каталог вручную
    mkdir -p /var/projects
    # А теперь изменим и переместим
    usermod -d /var/projects/testuser -m testuser

4. Блокировка и разблокировка пользователя (-L-U)
Иногда нужно временно отключить учетную запись, не удаляя ее.

  • -L (lock): Заблокировать. Система просто ставит ! в начало зашифрованного пароля в /etc/shadow, делая его невалидным.

  • -U (unlock): Разблокировать.

    # Блокируем
    usermod -L testuser
    # Разблокируем
    usermod -U testuser

Часть 3: Практика. Завершение работы

Когда пользователь нам больше не нужен, его следует корректно удалить.

Команда deluser (delete user)
Мы уже знакомы с ней, но давайте повторим важный момент.

# Просто удалить пользователя, но оставить его домашний каталог
deluser testuser

# Удалить пользователя И его домашний каталог со всем содержимым
deluser --remove-home testuser

Второй вариант почти всегда является предпочтительным для поддержания чистоты в системе.

Часть 4: Заключение

Сегодня мы сделали большой шаг от простого создания пользователей к их осознанному администрированию. Вы теперь не просто используете команды usermod или deluser как "черный ящик", а понимаете, какие именно изменения они вносят в системные файлы /etc/passwd и /etc/group. Вы научились изменять ключевые параметры пользователя: его права на вход в систему (shell), членство в группах, домашний каталог, а также временно блокировать учетные записи. Эти навыки являются основой для управления доступом и обеспечения безопасности на вашем сервере.

На следующем, 23-м уроке, мы перейдем к не менее важной теме - управлению дисковым пространством. Мы изучим команды df и du, которые позволяют анализировать, сколько места занято на дисках и какие именно файлы и каталоги "съедают" больше всего пространства. Этот навык критически важен для предотвращения сбоев, связанных с переполнением диска.

Перейти к просмотру - УРОК №23.

подарок Промо-код: PROMO15 - скидка 15%! огонь

Введите при оформлении первого заказа на сайте: Hosting-VDS.com

авторское право цифровые решения

Помог ли вам данный ответ? 0 Пользователи считают это полезным (0 голосов)