JavaRush /Курси /Docker SELF /Створення користувачів і груп, налаштування прав доступу,...

Створення користувачів і груп, налаштування прав доступу, управління процесами

Docker SELF
Рівень 2 , Лекція 6
Відкрита

1. Постановка задачі

Отже, попереду у нас інтенсивна практична робота, де ти зможеш застосувати всі знання, отримані на попередніх лекціях. Ми будемо створювати користувачів, об’єднувати їх у групи, задавати унікальні права доступу та керувати процесами в системі. І якщо ти думаєш: "Ну і навіщо мені все це?", уяви, що ти — системний адміністратор чи DevOps-інженер, і від тебе вимагають налаштувати сервер для спільної роботи команди. Ну або просто врятувати свій комп’ютер від хаосу! У реальному світі такі ситуації виникають досить часто.

Твоя ціль — налаштувати систему для таких користувачів і процесів:

  1. Створити двох користувачів: user1 і user2. Їм належить працювати разом у групі developers.
  2. Налаштувати файл (наприклад, project.txt) таким чином, щоб тільки члени групи developers могли його редагувати.
  3. Створити кілька процесів (наприклад, за допомогою команди sleep) і навчитися завершувати їх у разі необхідності.
  4. Переглянути активні процеси, щоб визначити, які з них споживають найбільше ресурсів.

Звучить як план? Давайте реалізуємо його крок за кроком.


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: Моніторинг процесів

Для відстеження навантаження на систему використовуйте:

  1. top — для роботи в режимі реального часу:

       top
    

    Тут ви можете спостерігати завантаження процесора, пам'яті і активні процеси. Використовуйте комбінацію клавіш k, щоб завершити процес прямо з інтерфейсу.

  2. htop — більш зручний інтерфейс (якщо він у вас встановлений):

    htop
    
    Для виходу натисніть F10.

8. Checklist

Після виконання всіх кроків ти повинен переконатися, що:

  1. Створені два користувача user1 і user2.
  2. Створена і налаштована група developers, в неї додані обидва користувача.
  3. Створений файл project.txt, доступний тільки для групи developers.
  4. Створені і завершені декілька процесів через команди kill, killall і pkill.
  5. Ти успішно переглянув список процесів у ps, top або htop.

Якщо все виконано — вітаємо! Ти пройшов через усі основні етапи керування користувачами, групами, правами доступу та процесами в системі Linux. Хай буде з тобою консольна могутність!

1
Опитування
Перші команди Linux, рівень 2, лекція 6
Недоступний
Перші команди Linux
Перші команди Linux
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ