1. Постановка задачі
Отже, попереду у нас інтенсивна практична робота, де ти зможеш застосувати всі знання, отримані на попередніх лекціях. Ми будемо створювати користувачів, об’єднувати їх у групи, задавати унікальні права доступу та керувати процесами в системі. І якщо ти думаєш: "Ну і навіщо мені все це?", уяви, що ти — системний адміністратор чи DevOps-інженер, і від тебе вимагають налаштувати сервер для спільної роботи команди. Ну або просто врятувати свій комп’ютер від хаосу! У реальному світі такі ситуації виникають досить часто.
Твоя ціль — налаштувати систему для таких користувачів і процесів:
- Створити двох користувачів:
user1іuser2. Їм належить працювати разом у групіdevelopers. - Налаштувати файл (наприклад,
project.txt) таким чином, щоб тільки члени групиdevelopersмогли його редагувати. - Створити кілька процесів (наприклад, за допомогою команди
sleep) і навчитися завершувати їх у разі необхідності. - Переглянути активні процеси, щоб визначити, які з них споживають найбільше ресурсів.
Звучить як план? Давайте реалізуємо його крок за кроком.
2. Крок 1: Створення користувачів
1. Створюємо користувачів
Для початку створимо двох користувачів:
sudo adduser user1
sudo adduser user2
При виконанні цих команд система запитає вас встановити пароль і введе опис для кожного користувача. Ми не будемо тут заповнювати зайві дані, можна просто натиснути Enter.
Кожному користувачеві автоматично створюється домашня директорія в /home. Ви можете перевірити це:
ls /home
Якщо ви працюєте локально, не забудьте використовувати sudo, щоб отримати права адміністратора. А якщо ви у WSL, будьте готові, що там можуть бути нюанси з користувачами. Наприклад, у WSL користувач за замовчуванням вже є адміністратором системи.
3. Крок 2: Створення групи і додавання користувачів
1. Створюємо групу
Щоб користувачі могли спільно працювати над проектами, додамо їх у групу. Для початку створимо групу developers:
sudo groupadd developers
2. Додаємо користувачів у групу
Тепер додамо користувачів user1 і user2 у групу developers. Використаємо команду usermod для цього завдання:
sudo usermod -aG developers user1
sudo usermod -aG developers user2
3. Перевіряємо членство у групі
Щоб упевнитися, що користувачі правильно додані у групу, виконайте:
groups user1
groups user2
Ви повинні побачити, що user1 і user2 є членами групи developers.
4. Крок 3: Робота з файлами і правами доступу
1. Створюємо файл для проєкту
Створимо файл project.txt в домашній директорії одного з користувачів (наприклад, user1):
sudo -u user1 touch /home/user1/project.txt
Команда sudo -u дозволяє нам виконувати дії від імені іншого користувача.
2. Змінюємо власника і групу файлу
Призначимо власником user1, а групою — developers, щоб у обох користувачів був однаковий доступ:
sudo chown user1:developers /home/user1/project.txt
3. Налаштовуємо права доступу
Тепер змінимо права доступу файлу. Використовуємо команду chmod:
sudo chmod 660 /home/user1/project.txt
Що ми зробили? Ми дали власнику user1 і групі developers права на читання і запис rw-, а всі інші не мають ніякого доступу.
Ви можете перевірити права доступу за допомогою команди ls:
ls -l /home/user1/project.txt
Очікуваний результат:
-rw-rw---- 1 user1 developers 0 дата час /home/user1/project.txt
5. Крок 4: Запуск процесів
1. Запускаємо процеси
Для експерименту створимо кілька "довгоживучих" процесів з командою sleep:
sleep 300 &
sleep 400 &
sleep 500 &
Кожна команда sleep запускається у фоні завдяки символу &.
Щоб перевірити список процесів, використовуйте команду ps:
ps
Більше інформації можна побачити за допомогою ps aux:
ps aux | grep sleep
6. Крок 5: Завершення процесів
1. Завершуємо процес за PID
Визначаємо PID одного з процесів (наприклад, sleep) і завершуємо його:
kill PID
Де PID — ідентифікатор процесу, який можна знайти через ps.
2. Завершуємо процес за іменем
Якщо ви хочете завершити всі процеси sleep, використовуйте команду killall:
killall sleep
3. Використовуємо pkill
Якщо ви не пам'ятаєте точну назву процесу, pkill допоможе завершити процес за частковим збігом імені:
pkill slee
7. Крок 6: Моніторинг процесів
Для відстеження навантаження на систему використовуйте:
top— для роботи в режимі реального часу:topТут ви можете спостерігати завантаження процесора, пам'яті і активні процеси. Використовуйте комбінацію клавіш
k, щоб завершити процес прямо з інтерфейсу.htop— більш зручний інтерфейс (якщо він у вас встановлений):
Для виходу натиснітьhtopF10.
8. Checklist
Після виконання всіх кроків ти повинен переконатися, що:
- Створені два користувача
user1іuser2. - Створена і налаштована група
developers, в неї додані обидва користувача. - Створений файл
project.txt, доступний тільки для групиdevelopers. - Створені і завершені декілька процесів через команди
kill,killallіpkill. - Ти успішно переглянув список процесів у
ps,topабоhtop.
Якщо все виконано — вітаємо! Ти пройшов через усі основні етапи керування користувачами, групами, правами доступу та процесами в системі Linux. Хай буде з тобою консольна могутність!
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ