# Практическая работа №3. Управление правами доступа

## Команды

* chgrp <изменить группу файла>
* chown <изменить владельца и группу файлов>
* chmod <изменить права доступа к файлу>

## **Цель работы**

Получить навыки по управлению правами доступа к файловым ресурсам системы, освоить основные команды - *chmod, chown, chgrp*.

## Задания к практической работе

1. Войти в систему под собственной учетной записью.
2. Создать в домашнем каталоге 2-3 файла произвольного содержания (имена файлов - *u1, u2, u3*).
3. Получить развернутый список файлов домашнего каталога и сохранить его в файле *listing1*
4. Просмотреть файл *listing1*, обратив внимание на поля прав доступа, владельца и группы
5. Повторить п. 2 от имени пользователя root в новом сеансе или по команде *su* (имена файлов - *r1, r2, r3*). Завершить сеанс *root (п.2. Создать файл в домашнем каталоге вашей учетной записи)*
6. Повторить п.3, результат дописать в файл *listing1*
7. Открыть файл *listing1* и сравнить права доступа для файлов, созданных от вашего имени и от имени суперпользователя
8. Изменить содержимое файлов, созданных вами и суперпользователем. Сохранить изменения
9. Открыть сеанс *root*
10. Перейти в каталог */home/ваша\_учетная\_запись*
11. Изменить права доступа к файлам *u1* и *r1* следующим образом:
    * *u1*: запретить запись для владельца и группы
    * *r1*: разрешить запись для всех
12. Переключиться в сеанс пользователя и изменить содержимое файлов *u1* и *r1*. Сохранить изменения
13. Перейти в сеанс root и изменить владельца файлов *u1* и *u2* на *root*, а группу - на *stud\**
14. Из *tty1* попробовать изменить файл u2

{% hint style="info" %}
Подсистема TTY, или TTY-абстракция, — это одна из основ [Unix](https://ru.wikipedia.org/wiki/Unix) или [Unix-подобных](https://ru.wikipedia.org/wiki/Unix-%D0%BF%D0%BE%D0%B4%D0%BE%D0%B1%D0%BD%D0%B0%D1%8F_%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0) операционных систем, в частности [Linux](https://ru.wikipedia.org/wiki/Linux). Данная система предназначена для использования одного терминала несколькими процессами, некоторых возможностей ввода (например, отправка сигналов специальными клавишами, удаление введённых символов).

По умолчанию работа происходит в tty1. Для перехода между различными tty используются функциональные клавиши F1-5.
{% endhint %}

15. Из *tty2* создать каталоги */home/shared, home/shared/pub, /home/shared/upload, /home/shared/temp*. Установить на них следующие права:

| каталог | владелец | группа | права |
| ------- | -------- | ------ | ----- |
| pub     | root     | users  | 775   |
| upload  | nobody   | users  | 130   |
| temp    | stud     | users  | 777   |

16. Выполнить копирование, чтение, удаление файлов *u1, u2, u3, r1, r2, r3* в каталоги, созданные в п. 15 из сеансов *root*, *stud* и *вашего*. Сравнить и проанализировать результаты.

\*Создается вместе с пользователем. При отсутствии, необходимо создать пользователя stud и задать ему любой пароль.

## **Задания для самостоятельного выполнения**

1. В текущей папке создать файл hello следующего содержания

```
#!/bin/sh \
echo Hello, World! \
echo -n "I'm " \
whoami
```

2. Выполнить следующие действия и проанализировать результаты:

* набрать в командной строке имя файла *hello* и нажать Enter
* набрать в командной строке *sh hello* и нажать Enter
* установить для файла *hello* права на исполнение (x), ввести имя файла в командной строке (*./hello*) и нажать *Enter*

3. Разберитесь, как в Linux можно организовать специальные каталоги-файлообменники - такие, что создавать в них файлы могут любые пользователи, а удалять - только владельцы файлов (тот, кто их создал).

## **Контрольные вопросы**

1. Зачем у файла нужны атрибуты доступа?
2. Для каких трех категории пользователей задаются права доступа каждого конкретного файла?
3. Для чего в UNIX-подобных системах используются пользовательские группы?
4. Какие действия с файлами регламентируются правами доступа?
5. На какой системе счисления основывается числовое представление прав доступа?
6. Чем отличается назначение прав доступа к простому файлу и к директории?
7. Кто может менять права доступа определенного файла?
8. Каково назначение специальных битов прав доступа?
