Цель урока: Перейти от простого создания пользователей к их полноценному администрированию. Мы глубоко изучим команды для модификации существующих пользователей (usermod) и групп (groupmod), научимся изменять их ключевые атрибуты, такие как командная оболочка (shell) или домашний каталог. Самое главное - мы разберем структуру системных файлов (/etc/passwd, /etc/shadow, /etc/group), чтобы вы понимали, где и как Linux хранит всю информацию о пользователях.
Часть 1: Теория. Где "живут" пользователи? Три главных файла
Когда вы создаете пользователя командой adduser, эта команда на самом деле вносит записи в несколько ключевых текстовых файлов. Понимание их структуры - это ключ к пониманию всей системы пользователей Linux.
-
/etc/passwd - Картотека пользователей
Это главный справочник пользователей. Каждая строка в этом файле описывает одного пользователя и состоит из семи полей, разделенных двоеточием (:).
Давайте посмотрим на строку для пользователя root:grep "^root:" /etc/passwd
Результат будет примерно таким: root:x:0:0:root:/root:/bin/bash
Разбор полей:
-
root: Имя пользователя (логин).
-
x: Заглушка для пароля. Раньше здесь хранился зашифрованный пароль, но это было небезопасно. Теперь он хранится в другом, более защищенном файле.
-
0: UID (User ID) - уникальный числовой идентификатор пользователя. UID 0 - это всегда root.
-
0: GID (Group ID) - ID основной группы пользователя.
-
root: Комментарий. Обычно здесь указывают полное имя пользователя.
-
/root: Путь к домашнему каталогу.
-
/bin/bash: Командная оболочка (shell), которая запускается при входе пользователя в систему.
-
-
/etc/shadow - Сейф с паролями
Этот файл может читать только root. Здесь хранятся зашифрованные (хэшированные) пароли и информация об их сроке действия. Мы не будем редактировать его вручную, но важно знать о его существовании. -
/etc/group - Справочник групп
Этот файл содержит информацию о группах пользователей. Каждая строка - это одна группа.grep "sudo" /etc/group
Результат: sudo:x:27:your_admin_user
Разбор полей:
-
sudo: Имя группы.
-
x: Заглушка для пароля группы (редко используется).
-
27: GID (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