Модуль 8.3: Пакети та Користувачі
Операції — LFCS | Складність:
[MEDIUM]| Час: 40–50 хв
Передумови
Розділ «Передумови»Перед початком цього модуля:
- Обов’язково: Модуль 1.4: Користувачі та дозволи
- Обов’язково: Модуль 1.2: Процеси та systemd
Що ви зможете робити після цього модуля
Розділ «Що ви зможете робити після цього модуля»Після завершення цього модуля ви зможете:
- Керувати пакетами за допомогою apt/dnf (встановлення, оновлення, закріплення, утримання) та вирішувати конфлікти залежностей
- Адмініструвати користувачів і групи з належним контролем доступу та політиками паролів
- Налаштувати доступ sudo з детальними дозволами для різних адміністративних ролей
- Перевірити встановлені пакети на вразливості безпеки та зайве програмне забезпечення
Чому цей модуль важливий
Розділ «Чому цей модуль важливий»Встановлення програм та керування доступами — це те, що системний адміністратор робить щодня. Патчинг систем, створення облікових записів та налаштування sudo є фундаментом безпеки та стабільності будь-якої інфраструктури.
Розуміння цих процесів допоможе вам:
- Підтримувати актуальність ПЗ — вразливості в непатчених пакетах є головним вектором атак.
- Керувати доступами — принцип найменших привілеїв починається з правильних налаштувань користувачів.
- Автоматизувати налаштування — Dockerfiles та скрипти автоматизації базуються на командах встановлення пакетів та створення юзерів.
- Скласти іспит LFCS — ці теми є базовими й обов’язковими.
Керування пакетами
Розділ «Керування пакетами»apt (Debian/Ubuntu)
Розділ «apt (Debian/Ubuntu)»# Оновити список доступних пакетівsudo apt update
# Встановити програмуsudo apt install nginx
# Видалити програмуsudo apt remove nginx
# Видалити разом із конфігамиsudo apt purge nginx
# Пошук пакетівapt search "database"dnf (RHEL/CentOS/Fedora)
Розділ «dnf (RHEL/CentOS/Fedora)»# Встановити програмуsudo dnf install nginx
# Оновити всю системуsudo dnf update
# Видалити пакетsudo dnf remove nginxАдміністрування користувачів
Розділ «Адміністрування користувачів»Головні файли
Розділ «Головні файли»- /etc/passwd — список усіх акаунтів.
- /etc/shadow — зашифровані паролі (тільки для root).
- /etc/group — список груп.
Основні команди
Розділ «Основні команди»# Створити користувача з домашньою папкою та Bashsudo useradd -m -s /bin/bash alice
# Встановити парольsudo passwd alice
# Додати користувача до групи (наприклад, docker)sudo usermod -aG docker alice# ВАЖЛИВО: завжди використовуйте -a (append), інакше затрете інші групи!
# Видалити користувача з папкамиsudo userdel -r aliceНалаштування sudo
Розділ «Налаштування sudo»Файл /etc/sudoers визначає, хто може ставати root.
ПРАВИЛО №1: Ніколи не редагуйте цей файл звичайним редактором. Завжди використовуйте visudo. Він перевіряє синтаксис і не дасть вам заблокувати систему.
# Відкрити налаштування sudosudo visudoПриклад запису:
alice ALL=(ALL:ALL) ALL — Аліса може все.
%devs ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx — всі члени групи devs можуть перезапускати nginx без пароля.
Тест
Розділ «Тест»-
Яка різниця між
apt updateтаapt upgrade?Відповідь
`apt update` тільки завантажує актуальний список пакетів з репозиторіїв. `apt upgrade` безпосередньо встановлює нові версії вже наявних у системі програм. -
Яка команда дозволяє дізнатися, до яких груп належить користувач?
Відповідь
Команда `id <ім'я>` або просто `groups <ім'я>`. -
Як заблокувати обліковий запис користувача без його видалення?
Відповідь
`sudo usermod -L <ім'я>` (Lock). Це поставить знак оклику перед паролем у /etc/shadow, і вхід стане неможливим. Розблокувати можна через `-U` (Unlock). -
Що станеться, якщо виконати
usermod -G docker aliceбез прапорця-a?Відповідь
Це видалить Алісу з УСІХ інших додаткових груп (включаючи sudo!), залишивши її тільки в групі docker. Завжди використовуйте `-aG`.
Практична вправа
Розділ «Практична вправа»Завдання: Створити користувача та надати йому обмежені права sudo.
- Створіть групу
app-admins:Terminal window sudo groupadd app-admins - Створіть користувача
bobу цій групі:Terminal window sudo useradd -m -G app-admins -s /bin/bash bob - Дозвольте групі
app-adminsпереглядати статус сервісів без пароля:- Запустіть
sudo visudo. - Додайте рядок:
%app-admins ALL=(ALL) NOPASSWD: /usr/bin/systemctl status *
- Запустіть
- Перевірте роботу від імені Боба:
Terminal window sudo -u bob sudo systemctl status ssh
Критерії успіху: Користувач Борис може бачити статус сервісів через sudo, але не може їх зупиняти чи запускати.
Підсумок
Розділ «Підсумок»- apt/dnf — ваш зв’язок зі світом ПЗ.
- useradd/usermod — керування людьми та сервісними акаунтами.
- /etc/shadow — найцінніший файл системи.
- visudo — єдиний безпечний шлях до налаштувань привілеїв.
Далі: Модуль 8.4: Планування завдань та бекапи — навчіться автоматизувати регулярні задачі та зберігати дані.