Ysa-k03-ru
глава 3: Пользователи, группы и права доступа в Unix/Linux
1. Unix/Linux как многопользовательская система
Unix/Linux изначально создавался как **многопользовательская система**. Это означает, что **несколько пользователей могут одновременно работать на одном компьютере**, например:
- несколько пользователей подключены по SSH к серверу
- один пользователь работает за графическим интерфейсом, другой — через терминал
- на сервере работают службы от имени специальных системных пользователей
Чтобы обеспечить **безопасность и порядок**, система должна строго контролировать:
- кто может читать файлы
- кто может изменять файлы
- кто может запускать программы
Для этого в Unix/Linux используются:
- пользователи
- группы
- права доступа к файлам и каталогам
2. Пользователи (Users)
Каждый пользователь в системе имеет:
- имя пользователя (login)
- уникальный числовой идентификатор (UID)
- домашний каталог (например, /home/alice)
- оболочку (shell), например /bin/bash
Типы пользователей
- **root** — суперпользователь, имеет полный доступ ко всей системе
- **обычные пользователи** — работают в системе, имеют ограниченные права
- **системные пользователи** — используются сервисами (например, www-data, mysql)
Пример просмотра информации о текущем пользователе:
id
Вывод может выглядеть так:
uid=1000(alice) gid=1000(students) groups=1000(students),27(sudo)
3. Группы (Groups)
Группа — это способ **объединить несколько пользователей** и управлять их правами одновременно.
Примеры:
- группа sudo — пользователи, которые могут выполнять команды администратора
- группа www-data — веб-сервер
- группа students — группа учеников
Посмотреть группы пользователя:
groups
4. Права доступа к файлам и каталогам
Каждый файл и каталог в Unix/Linux имеет:
- владельца (user)
- группу (group)
- набор прав доступа
Посмотреть права:
ls -l
Пример вывода:
-rw-r--r-- 1 alice students 1234 Jan 10 file.txt
Разбор строки прав
-rw-r--r--
- первый символ:
- - — обычный файл
- d — каталог
- далее три группы по три символа:
- rw- — права владельца
- r-- — права группы
- r-- — права остальных пользователей
Значение символов
- r — read (чтение)
- w — write (запись)
- x — execute (выполнение)
Для каталогов:
- r — просмотр списка файлов
- w — создание и удаление файлов
- x — вход в каталог (cd)
5. Изменение прав доступа: chmod
Команда chmod изменяет права доступа.
Символьный способ
chmod u+x script.sh
- u — владелец
- g — группа
- o — остальные
- + — добавить право
- - — убрать право
Пример:
chmod g+w report.txt
Числовой способ
- r = 4
- w = 2
- x = 1
Пример:
chmod 755 script.sh
Расшифровка:
- 7 = rwx
- 5 = r-x
- 5 = r-x
6. Изменение владельца и группы: chown
Команда chown используется администратором (root).
Пример:
chown bob:students file.txt
- владелец: bob
- группа: students
Только изменить группу:
chown :students file.txt
7. Управление пользователями
Создание пользователя
sudo useradd -m alice
- -m — создать домашний каталог
Установка пароля
sudo passwd alice
Просмотр информации
id alice
8. Практика: сценарии прав доступа
Задание 1: Защита личных файлов
- Создайте файл private.txt
- Разрешите доступ только владельцу
chmod 600 private.txt
Задание 2: Общий каталог группы
- Создайте каталог /shared
- Назначьте группу students
- Разрешите чтение и запись группе
chmod 770 /shared
9. Практика: создание пользователей
Задание 3
- Создайте пользователя student1
- Установите пароль
- Добавьте в группу students
- Проверьте группы пользователя
10. Дополнительные материалы для самообучения
- DigitalOcean: An Introduction to Linux Permissions (англ.)
Отличное практическое объяснение модели прав доступа. https://www.digitalocean.com/community/tutorials/an-introduction-to-linux-permissions
- Grymoire: Unix Permissions (англ.)
Глубокое объяснение прав доступа с примерами. https://www.grymoire.com/Unix/Permissions.html
- LabEx: Права доступа к файлам в Linux
Интерактивные практические задания (лабораторная работа). https://labex.io/ru/tutorials/linux-permissions-of-files-270252
- Habr: Права доступа в Linux
Практическая статья с примерами и пояснениями. https://habr.com/ru/articles/469667/
Видео-материалы
- Linux: пользователи, группы и права доступа (русский язык)
https://www.youtube.com/watch?v=R6AegtZpklQ
- chmod и chown — практика (русский язык)
https://www.youtube.com/watch?v=6hHPnoVsJ9Q
Итог
После изучения этой главы ученик сможет:
- объяснить, почему в Unix/Linux необходима система пользователей и прав доступа
- различать пользователей и группы
- читать и понимать права доступа к файлам и каталогам
- изменять права доступа с помощью chmod
- изменять владельца и группу с помощью chown
- управлять пользователями с помощью useradd, passwd, id, groups
- на практике настраивать права доступа для типичных сценариев администратора