diff --git a/07_file_permissions/tasks.md b/07_file_permissions/tasks.md new file mode 100644 index 0000000..d077f09 --- /dev/null +++ b/07_file_permissions/tasks.md @@ -0,0 +1,48 @@ +# Задания + +### 1. +Создайте папку projects в корне системы с правами rwx для владельца, группы и других пользователей. Установите на неё stickybit. + +### 2. +Работая от пользователя stud в папке projects создайте папку с вашим проектом. Проверьте, что владелец может записать файл в неё. Проверьте, что mike или vera могут прочитать содержимое, но не могу записать в неё. + +### 3. +В projects создайте ещё одну папку с проектом project2. Дайте к ней доступ на чтение только пользователям из группы best_project_team. Создайте группу best_project_team в которую входит mike и stud. Перезайдите в аккаунт, чтоб применить изменения членства в группе. Проверьте, что доступа к папке у пользователя vera нет. + +### 4. +Создайте третью и четвёртую папки от пользователя mike и vera в /projects и сделайте их полностью приватными. Добавьте в каждую директорию по одному файлу. Проверьте может ли mike или vera посмотреть содержимое чужого приватного проекта. + +### 5. +Проверьте может ли они mike удалить папку с чужим проектом? Может ли он удалить свою папку?. Уберите stickybit у папки /projects. А теперь может ли mike удалить папку, созданную vera или stud? Влияет ли на возможность удаления наличие в папке файлов? + +### 6. +От root cоздайте ещё одну общую директорию shared в /home/. Создайте группу shared_files c большим значением идентификатора, например 70000, в которую входят mike, vera и stud. Поменяйте владельца /home/shared на nobody, а владельца-группу на shared_files. Установите полные права доступа для владельца и группы владельца. Все остальным запретите доступ к папке. Также установите бит SGID. + +Создайте несколько файлов под разными аккаунтами в этой папке и проверьте, что они имеют владельца-группу shared_files. + +### 7. +Узнайте значение umask одноимённой командой. Создайте папку и файл c именем test_$(umask). Выведите атрибуты файла. Измените umask одноимённой командой на `0002`. Повторите создание папки и файла и сравните атрибуты файлов, созданных с разными масками. + +### 8. +Под root скопируйте bash `cp /bin/bash /bin/my_unsecure_bash` и установите атрибуты файла в значение 4755. Значение 4 соответствует биту SUID. Посмотрите на результат командой stat. Создайте файл-скрипт gen_file_root.sh в папке /tmp от пользователя mike со следующим содержимым: +``` +#!/bin/my_unsecure_bash -p +touch /tmp/root_$RANDOM +``` +Сделайте его исполняемым для всех. Вызовите скрипт от пользователя stud. Обратите внимание на владельца созданного файла /tmp/root_*. Как на него повлиял SUID? + +### 9. +В каталоге /projects cоздайте файл test в папках 1, 2, 3. Поменяйте для папок атрибуты доступа для категории other: r--, r-x, --x соответственно. Зайдите под другого пользователя, который входит в категорию other и попробуйте найти файл с помощью find, начиная с каталога /projects. Попробуйте найти слов в содержимом файлов. Как влияют атрибуты на возможность поиска? + + +# Справка + +Конфигурационные файлы: +- /etc/login.defs + +Команды: +- stat +- ls -l +- chmod +- chown +- umask \ No newline at end of file