Ysa-k03-ru-v2: Difference between revisions
| (7 intermediate revisions by the same user not shown) | |||
| Line 20: | Line 20: | ||
* **имя пользователя** (user) |
* **имя пользователя** (user) |
||
* **UID** (User ID) — числовой идентификатор |
* **UID** (User ID) — числовой идентификатор |
||
* **домашний каталог** (обычно `/home/ |
* **домашний каталог** (обычно `/home/user`) |
||
* **основную группу** |
* **основную группу** |
||
* **оболочку (shell)** — например `/bin/bash` |
* **оболочку (shell)** — например `/bin/bash` |
||
| Line 29: | Line 29: | ||
UID: 1001 |
UID: 1001 |
||
home: /home/ivan |
home: /home/ivan |
||
group: students |
|||
shell: /bin/bash |
shell: /bin/bash |
||
</pre> |
</pre> |
||
| Line 44: | Line 45: | ||
* имеет **одну основную группу** |
* имеет **одну основную группу** |
||
* может входить в **несколько дополнительных групп** |
* может входить в **несколько дополнительных групп** |
||
Примеры: |
|||
* группа ''sudo'' — пользователи, которые могут выполнять команды администратора |
|||
* группа ''www-data'' — веб-сервер |
|||
* группа ''students'' — группа учеников |
|||
Посмотреть группы пользователя: |
|||
<pre> |
|||
% groups |
|||
</pre> |
|||
Пример: |
Пример: |
||
Если пользователь ''ivan'' выполняет команду ''groups'' и получает следующий ответ, это означает, что он является участником следующих групп: students, sudo |
|||
<pre> |
<pre> |
||
% groups |
|||
user ivan ∈ groups: ivan, sudo, developers |
|||
students, sudo |
|||
</pre> |
</pre> |
||
| Line 63: | Line 76: | ||
Пример вывода: |
Пример вывода: |
||
<pre> |
<pre> |
||
uid=1001(ivan) gid=1001( |
uid=1001(ivan) gid=1001(students) groups=1001(ivan),27(sudo) |
||
</pre> |
</pre> |
||
| Line 281: | Line 294: | ||
--- |
--- |
||
== Дополнительные материалы для |
== 10. Дополнительные материалы для самообучения == |
||
* `man chmod` |
|||
* `man chown` |
|||
* `man useradd` |
|||
* `man passwd` |
|||
* Документация: |
|||
* Linux Filesystem Permissions |
|||
* The Linux Command Line (William Shotts) |
|||
* '''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 |
|||
== Итог == |
== Итог == |
||
Latest revision as of 13:03, 30 December 2025
Глава 3: Пользователи, группы и права доступа в Unix/Linux
Введение - Unix/Linux как многопользовательская система
В Unix/Linux одна система может использоваться несколькими пользователями. Чтобы обеспечить безопасность, стабильность и порядок, необходимо **четко управлять правами доступа**: кто может входить в систему, какие файлы читать, изменять или выполнять.
В этой главе вы изучите:
- что такое пользователи и группы;
- как работают права доступа к файлам и каталогам;
- как управлять пользователями;
- как на практике настраивать права в типичных сценариях системного администратора.
Пользователи и группы
Пользователь (user)
Пользователь — это учетная запись, под которой человек работает в системе.
Каждый пользователь имеет:
- **имя пользователя** (user)
- **UID** (User ID) — числовой идентификатор
- **домашний каталог** (обычно `/home/user`)
- **основную группу**
- **оболочку (shell)** — например `/bin/bash`
Пример:
user: ivan UID: 1001 home: /home/ivan group: students shell: /bin/bash
---
Группа (group)
Группа — это набор пользователей.
Зачем нужны группы:
- упрощают управление правами;
- позволяют давать доступ нескольким пользователям одновременно.
Каждый пользователь:
- имеет **одну основную группу**
- может входить в **несколько дополнительных групп**
Примеры:
- группа sudo — пользователи, которые могут выполнять команды администратора
- группа www-data — веб-сервер
- группа students — группа учеников
Посмотреть группы пользователя:
% groups
Пример: Если пользователь ivan выполняет команду groups и получает следующий ответ, это означает, что он является участником следующих групп: students, sudo
% groups students, sudo
---
Проверка информации о пользователе
Команда id
Показывает UID, GID и группы пользователя.
id
Пример вывода:
uid=1001(ivan) gid=1001(students) groups=1001(ivan),27(sudo)
---
Команда groups
Показывает группы пользователя.
groups ivan
---
Права доступа к файлам и каталогам
Команда ls -l
Используется для просмотра прав доступа.
ls -l
Пример:
-rw-r--r-- 1 ivan developers 1234 file.txt
---
Расшифровка вывода
-rw-r--r-- │││ ││ ││ │││ ││ │└─ права для остальных (others) │││ ││ └── права для группы (group) │││ └───── права для владельца (user) ││└─────── тип файла
Типы файлов:
- `-` — обычный файл
- `d` — каталог
- `l` — символическая ссылка
---
Типы прав
- **r** — read (чтение)
- **w** — write (запись)
- **x** — execute (выполнение)
Для файлов:
- r — читать файл
- w — изменять файл
- x — выполнять файл
Для каталогов:
- r — смотреть список файлов
- w — создавать/удалять файлы
- x — входить в каталог (`cd`)
---
Изменение прав: chmod
Символьный способ
Формат:
chmod [u|g|o][+|-][rwx] файл
Примеры:
chmod u+x script.sh # дать владельцу право выполнения chmod g+w file.txt # дать группе право записи chmod o-r secret.txt # убрать чтение у остальных
---
Числовой (октальный) способ
Каждое право имеет значение:
- r = 4
- w = 2
- x = 1
Сумма:
- 7 = rwx
- 6 = rw-
- 5 = r-x
- 4 = r--
Пример:
chmod 755 script.sh
Расшифровка:
- владелец: rwx (7)
- группа: r-x (5)
- остальные: r-x (5)
---
Изменение владельца и группы: chown
Формат:
chown user:group файл
Примеры:
chown ivan file.txt chown ivan:developers project.txt
Для каталогов рекурсивно:
chown -R ivan:developers /var/www/project
---
Управление пользователями
useradd — создание пользователя
Пример:
sudo useradd ivan
Создание с домашним каталогом и shell:
sudo useradd -m -s /bin/bash ivan
---
passwd — установка пароля
sudo passwd ivan
---
Практика: работа с пользователями
Практика 1: создать пользователя
1. Создайте пользователя `student` 2. Назначьте ему пароль 3. Проверьте его UID и группы
Команды:
sudo useradd -m -s /bin/bash student sudo passwd student id student
---
Практика 2: группы
1. Создайте группу `training` 2. Добавьте пользователя `student` в эту группу 3. Проверьте результат
Подсказка:
sudo groupadd training sudo usermod -aG training student groups student
---
Практика: права доступа (основная часть)
Практика 3: общий каталог
Сценарий: Несколько пользователей работают над одним проектом.
1. Создайте каталог `/srv/project` 2. Назначьте группу `training` 3. Дайте группе права на чтение и запись 4. Проверьте доступ от имени пользователя `student`
sudo mkdir /srv/project sudo chown :training /srv/project sudo chmod 770 /srv/project
---
Практика 4: защита файлов
1. Создайте файл `secret.txt` 2. Сделайте так, чтобы только владелец мог его читать 3. Проверьте права
touch secret.txt chmod 600 secret.txt ls -l secret.txt
---
Типичные ошибки новичков
- Права `777` «на всё» — **опасно**
- Отсутствие понимания прав каталогов
- Работа под root без необходимости
- Игнорирование групп
---
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-систем** и одна из важнейших тем для системного администратора.