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. Да прибудет с вами консольное могущество!
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ