Керування користувачами Linux: adduser, usermod і sudo | INTROSERV
EUR
european

EUR

usa

USD

Ukraine Ua
Ex. VAT Ex. VAT 0%

Управління користувачами на сервері 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 залежить від вашої системи.

Info

В 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

Це гарантує, що тимчасові підрядники автоматично втратять доступ.

Info

Ви можете перевірити дату закінчення терміну дії за допомогою 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, що вимагатиме інтерактивної автентифікації.

Warning

Ніколи не редагуйте файли sudoers безпосередньо за допомогою nano або vim. Синтаксична помилка зламає доступ sudo для всієї системи, і для виправлення знадобиться завантаження в режимі відновлення.

Крок 5: Видалення користувача

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

Щоб видалити користувача, але зберегти його файли:

sudo deluser johndoe

В RHEL/AlmaLinux: sudo userdel johndoe

Warning

Виконання команди без --remove-home (або -r) залишає /home/johndoe та файли користувача на диску. Це корисно для архівування даних, але ви повинні враховувати наявність решти файлів.

Щоб видалити користувача та його домашній каталог:

sudo deluser --remove-home johndoe

В RHEL/AlmaLinux: sudo userdel -r johndoe

Щоб видалити файл sudoers користувача, якщо він був створений, виконайте:

sudo rm -f /etc/sudoers.d/johndoe

Тепер обліковий запис користувача повністю видалено із системи.

Info

Перед видаленням користувача переконайтеся, що жодні фонові служби не залежать від його 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.

Відкат

Якщо вам потрібно скасувати зміни, внесені в цьому посібнику:

  1. Видаліть користувача з групи sudo: sudo gpasswd -d johndoe sudo (або wheel).
  2. Скасуйте будь-які додавання, зроблені за допомогою visudo.
  3. Видаліть користувача та його домашній каталог: sudo deluser --remove-home johndoe (або sudo userdel -r johndoe).
  4. Видаліть його виділений файл sudoers: sudo rm -f /etc/sudoers.d/johndoe.

Висновок

Належне налаштування облікових записів гарантує, що ви зможете безпечно управляти користувачами в Linux без шкоди для безпеки системи. Розуміючи команду adduser, команду usermod та команду passwd, поряд із безпечним налаштуванням sudo, ви підтримуєте стабільне та підзвітне середовище.

Версія документа: 1.0
Останнє оновлення: Травень 2026
Власник: Команда технічної документації

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA