Ysa-k03-ru-v2

From
Revision as of 12:53, 30 December 2025 by Jpr (talk | contribs) (Команда id)
Jump to navigation Jump to search

Глава 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)

Группа — это набор пользователей.

Зачем нужны группы:

  • упрощают управление правами;
  • позволяют давать доступ нескольким пользователям одновременно.

Каждый пользователь:

  • имеет **одну основную группу**
  • может входить в **несколько дополнительных групп**

Пример:

user ivan is member of groups: students, sudo, developers

---

Проверка информации о пользователе

Команда 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 без необходимости
  • Игнорирование групп

---

Дополнительные материалы для самостоятельного изучения

  • `man chmod`
  • `man chown`
  • `man useradd`
  • `man passwd`
  • Документация:
 * Linux Filesystem Permissions
 * The Linux Command Line (William Shotts)

---

Итог

После этой главы вы умеете:

  • понимать и читать права доступа;
  • безопасно изменять права файлов и каталогов;
  • создавать пользователей и группы;
  • настраивать доступ в реальных сценариях.

Это **ключевая основа безопасности Unix-систем** и одна из важнейших тем для системного администратора.