Управління користувачами на сервері Linux
Рівень: Початковий
Очікуваний час: ~30 хвилин
Мета: Вивчити інструменти CLI для створення та підтримки облікових записів, налаштування стандартного доступу до служб та безпечного підтримання працездатності.
Вступ
Управління користувачами Linux – це базова навичка для будь-якого системного адміністратора. Належний контроль доступу забезпечує стабільність, безпеку та підзвітність сервера. У цьому посібнику ми розглянемо основи додавання облікових записів, надання привілеїв (включаючи підвищення привілеїв у Linux) та безпечного підтримання стандартної конфігурації служб.
Попередні вимоги
Перед початком переконайтеся, що виконані такі умови:
- Операційна система: Ubuntu 22.04/24.04 LTS, Debian 12/13, AlmaLinux/Rocky Linux 8/9/10, RHEL 8/9/10
- Доступ: доступ sudo або root до сервера через SSH
- Система: Працюючий менеджер пакетів
- Необхідні знання: впевнене використання командного рядка Linux
Розуміння ключових концепцій
Перед внесенням змін слід зрозуміти, як функціонують облікові записи:
- UID (ID користувача): Унікальний числовий ідентифікатор, призначений кожному користувачеві для відстеження володіння та прав доступу.
- GID (ID групи): Основний числовий ідентифікатор, який призначає користувача до певної групи. Групи Linux об'єднують кількох користувачів для спільних прав доступу.
- Домашній каталог: Каталог за замовчуванням (
/home/username), де зберігаються особисті файли та конфігурації користувача. - Оболонка входу: Інтерпретатор команд (наприклад,
/bin/bash), який запускається під час входу авторизованого користувача. Авторизований користувач – це обліковий запис, якому дозволено доступ до системи. - Пароль: Секретний рядок символів, що використовується для автентифікації користувача Linux. Автентифікація – це процес перевірки особи користувача.
- Adduser: Інтерактивний інтерфейсний скрипт, що використовується для створення облікових записів, переважно в системах Debian/Ubuntu.
- Useradd: Нативна, низькорівнева бінарна утиліта, що використовується для створення облікових записів у всіх дистрибутивах Linux.
- Блокування облікового запису: Дія з відключення входу за паролем для захисту сервера.
- Термін дії облікового запису: Дія з автоматичного відключення облікового запису в певну дату.
Крок 1: Створення нового користувача
Для створення нового користувача використовуйте команду adduser (в Debian/Ubuntu) або команду useradd (в RHEL/AlmaLinux).
Замініть johndoe на бажане ім'я користувача в прикладах нижче. Виконайте наступну команду для створення користувача з іменем johndoe:
sudo adduser johndoe
Вам буде запропоновано ввести пароль та необов'язкові дані користувача.
Очікуваний вивід:
Вивід міститиме рядки про створення групи, користувача, домашнього каталогу та копіювання файлів з /etc/skel. Точний UID/GID залежить від вашої системи.
В RHEL/AlmaLinux використовуйте sudo useradd -m johndoe (прапорець -m гарантує створення /home/johndoe) і встановіть пароль вручну за допомогою команди passwd: sudo passwd johndoe.
Крок 2: Розуміння sudo на сервері Linux
Звичайні користувачі не можуть змінювати конфігурації системи або встановлювати програмне забезпечення. Команда Linux sudo дозволяє авторизованим користувачам виконувати команди з привілеями root.
2.1 Додавання користувача до групи sudo
Найпростіший спосіб надати привілеї – додати користувача до попередньо визначеної адміністративної групи за допомогою команди usermod.
Ubuntu/Debian:
sudo usermod -aG sudo johndoe
RHEL/AlmaLinux:
sudo usermod -aG wheel johndoe
Команда usermod додає (-a) користувача до додаткової групи (-G). Тепер користувач johndoe може виконувати адміністративні завдання, додаючи sudo перед командами. У разі успішного виконання команда нічого не виводить. Ви можете перевірити це за допомогою groups johndoe - група sudo (або wheel) повинна з'явитися у списку.
Крок 3: Зміна властивостей користувача
Вам може знадобитися заблокувати обліковий запис або змінити його пароль.
3.1 Зміна пароля
Щоб примусово змінити пароль або оновити забутий пароль, виконайте наступне за допомогою команди passwd:
sudo passwd johndoe
Вам буде запропоновано ввести та підтвердити новий пароль. Після завершення користувач зможе увійти в систему з новими обліковими даними.
3.2 Блокування облікового запису
Якщо користувач залишає компанію, ви повинні виконати блокування облікового запису для забезпечення безпеки сервера:
sudo usermod -L johndoe
Обліковий запис негайно блокується, запобігаючи будь-якому новому входу за паролем. Щоб розблокувати обліковий запис пізніше, використовуйте sudo usermod -U johndoe.
Обидві команди нічого не виводять. Ви можете перевірити статус за допомогою passwd -S johndoe (статус L = заблокований, P = активний).
3.3 Налаштування терміну дії облікового запису
Щоб автоматично відключити обліковий запис у певну дату, ви налаштовуєте термін дії облікового запису:
sudo usermod -e 2026-12-31 johndoe
Це гарантує, що тимчасові підрядники автоматично втратять доступ.
Ви можете перевірити дату закінчення терміну дії за допомогою sudo chage -l johndoe. Через обробку межі UTC вона може відображатися на один день раніше - це нормально, і обліковий запис усе одно завершить дію коректно.
Крок 4: Безпечне використання команди Linux sudo для безпеки сервера
Файл sudoers (/etc/sudoers) контролює, хто саме може використовувати sudo і що вони можуть виконувати.
Для редагування файлу sudoers завжди використовуйте visudo. Він перевіряє синтаксичні помилки перед збереженням, запобігаючи блокуванню.
Рекомендована найкраща практика – створювати окремий файл для кожного правила, а не редагувати основний файл:
sudo visudo -f /etc/sudoers.d/johndoe
Це спрощує відкат правил і знижує ризик пошкодження основної конфігурації sudoers.
Щоб дозволити johndoe перезапускати службу синхронізації часу без пароля, додайте відповідний рядок для вашої ОС:
Ubuntu/Debian:
johndoe ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart systemd-timesyncd
RHEL/AlmaLinux:
johndoe ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart chronyd
Збережіть і вийдіть. Тепер johndoe може перезапустити службу без запиту пароля.
Користувач johndoe повинен виконати команду як sudo systemctl restart systemd-timesyncd (або chronyd) - саме через sudo. Прямий виклик перезапуску служби без sudo поверне помилку polkit, що вимагатиме інтерактивної автентифікації.
Ніколи не редагуйте файли sudoers безпосередньо за допомогою nano або vim. Синтаксична помилка зламає доступ sudo для всієї системи, і для виправлення знадобиться завантаження в режимі відновлення.
Крок 5: Видалення користувача
Коли обліковий запис більше не потрібен, видаліть його для підтримання порядку на сервері.
Щоб видалити користувача, але зберегти його файли:
sudo deluser johndoe
В RHEL/AlmaLinux: sudo userdel johndoe
Виконання команди без --remove-home (або -r) залишає /home/johndoe та файли користувача на диску. Це корисно для архівування даних, але ви повинні враховувати наявність решти файлів.
Щоб видалити користувача та його домашній каталог:
sudo deluser --remove-home johndoe
В RHEL/AlmaLinux: sudo userdel -r johndoe
Щоб видалити файл sudoers користувача, якщо він був створений, виконайте:
sudo rm -f /etc/sudoers.d/johndoe
Тепер обліковий запис користувача повністю видалено із системи.
Перед видаленням користувача переконайтеся, що жодні фонові служби не залежать від його UID або груп Linux.
Перевірка
Для перевірки нового користувача та його членства в групах використовуйте команду id:
id johndoe
Очікуваний вивід:
У виводі будуть показані UID, GID (який може відрізнятися від 1001) і список груп. Переконайтеся, що присутня група sudo (Debian/Ubuntu) або wheel (RHEL/AlmaLinux). У Debian/Ubuntu в списку також може з'явитися група users - це нормально.
Щоб перевірити доступ sudo, перемкніться на нового користувача:
su - johndoe
Потім виконайте команду, що вимагає привілеїв:
sudo ls /root
У разі появи запиту введіть пароль johndoe (пароль, заданий на Кроці 1), а не пароль root. Ви повинні побачити вміст каталогу /root.
Усунення несправностей
- Синтаксичні помилки в sudoers: Якщо ви випадково зламаєте файл sudoers, часто це можна виправити, виконавши
pkexec visudoз іншого сеансу. Якщоpkexecнедоступний, вам знадобиться завантажити сервер у режимі відновлення/однокористувацькому режимі (recovery/single-user mode) для редагування файлу. - Втрата доступу sudo: Якщо ви втратили доступ sudo, але у вас все ще є пароль root, увійдіть безпосередньо як root (наприклад, через
su -), щоб виправити членство в групах. - Перевірка привілеїв користувача: Щоб точно дізнатися, які команди дозволено виконувати користувачеві, використовуйте
sudo -l -U johndoe.
Відкат
Якщо вам потрібно скасувати зміни, внесені в цьому посібнику:
- Видаліть користувача з групи sudo:
sudo gpasswd -d johndoe sudo(абоwheel). - Скасуйте будь-які додавання, зроблені за допомогою
visudo. - Видаліть користувача та його домашній каталог:
sudo deluser --remove-home johndoe(абоsudo userdel -r johndoe). - Видаліть його виділений файл sudoers:
sudo rm -f /etc/sudoers.d/johndoe.
Висновок
Належне налаштування облікових записів гарантує, що ви зможете безпечно управляти користувачами в Linux без шкоди для безпеки системи. Розуміючи команду adduser, команду usermod та команду passwd, поряд із безпечним налаштуванням sudo, ви підтримуєте стабільне та підзвітне середовище.
Версія документа: 1.0
Останнє оновлення: Травень 2026
Власник: Команда технічної документації