Step 5 (S-44755)

From Stepik Wiki
Revision as of 13:15, 6 August 2017 by Admin (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Step on Stepik: https://stepik.org/lesson/14825/step/5

Step 5 (S-44755) 1.png

[00:00 - 00:16] рассмотрим каким образом нужно сконфигурировать сервер для отдачи статических файлов а даже ставит что это 1 из базовых функций сервера а поэтому раз нее начнем а


[00:16 - 00:35] итак с помощью мы можем выделить некоторые наборы а например мы можем выделить все картинки и сказать что а все картинки на нашем сайте мы даем из определенной директории


[00:35 - 00:53] как то сделать а во 1 сдается локейшн а регулярные выражения которые соответствуют всем документам с расширением картинок и внутри а локейшена сдать специальные директивы руд


[00:53 - 01:10] директива тут говорит что урлы которые соответствуют данным локейшена нужно искать вот в этой папке а что происходит когда а


[01:10 - 01:27] обрабатывать в данном локейшн а путь который находится в урле склеивается а с директорией которой указана в документах вот и получается полный путь к файлу допустим если у нас был


[01:27 - 01:43] от такого в виду 2015 слэш 10 название картинке а да ну здесь предполагается что я тоже был


[01:43 - 01:57] большая ли у вас есть у нас был такой а этот он совпал с 1 локейшен приклеился к док на труд


[01:57 - 02:15] получился полный путь файла то есть сервер будет отдавать данный факт вариант 2 а когда у нас вот такого вида site map индекс xml


[02:15 - 02:30] этот урок совпадать старые блоки строки а мы видим что здесь используются директивы неруд а директива ес


[02:30 - 02:46] директива работает следующим образом та часть урла которое совпало в данном случае это сайта заменяется на то что написано в директиве а лес


[02:46 - 03:03] а заметьте что такой подход работает только с локейшена которые совпадают по префиксу если а локейшн используют регулярку полез в нем работать не будет а мы видим что слово сайтмэп из урла было удалено


[03:03 - 03:21] осталось только index xml а начало пути было взято из значение директория альянс собственно что использовать труд это зависит от структуры директорий можно использовать другой смотря что


[03:21 - 03:38] удобнее чаще всего типичных конфигурациях сервере есть 1 директория в которой лежит а вся статика то все статически документ


[03:38 - 03:53] так в директорию труд то есть а корень всех документов отсюда и название директивы то есть а тангенс позволяет создавать вам собственно произвольное количество


[03:53 - 04:10] а директории поэтому смысл а именно уже не столь значительная очередь и фрукты алис вы можете просто указать директорию из которых нужно отдавать файл


Step 5 (S-44755) 2.png

[04:10 - 04:27] а теперь а когда мы в сервера определил какой то файл нужно отдать происходит проверка правда помимо того что отрабатывает модули которые проверяют авторизацию


[04:27 - 04:46] а происходит проверка прав доступа на сайт в сети это важный момент поскольку большинство начинающих программистов сталкиваются программисту сталкивается с проблемой а того что отдает а файлы которые казались казалось бы есть на диске


[04:46 - 05:02] он дает код 2303 а для того чтобы проверить сложно вкратце поговорить про права доступа к файлам так начнем с атрибутов файлов процесс


[05:02 - 05:18] а у каждого запущенного процесса есть а эффективной пользоваться и эффективной группа на самом деле у процессов много разных атрибутов связанных с пользователем и группы а но мы считаем что есть 2 это


[05:18 - 05:35] конечном образом рассчитанные пользователь и некоторые группы с правами которых данный процесс выполняется файла на диске файл любую директорию так же есть пользователь это владелец файла а и грудь


[05:35 - 05:52] и помимо этого есть права доступа права доступа для файла не сдаются в виде 3 флагов read write the cute а чтение запись в файл и исполнения файл а причем эти права доступа они создаются как


[05:52 - 06:09] для они сдаются до пользователя для группы для остальных а каким образом можно посмотреть как узнать атрибут атрибуты пользователи группу


Step 5 (S-44755) 3.png

[06:09 - 06:26] с какого то запущено проще всего узнать с помощью команды пс а здесь написано довольно много всяких разных опции а это в основном для того чтобы вместить выдачу вк вы можете запустить команду пс вывести все процессы а


[06:26 - 06:43] здесь мы видим мы показываем все процесса с именем герц а мы видим что у нас есть мастер процесс по которой мы говорили мастер процесс работает с привилегиями суперпользователя


[06:43 - 06:59] есть 4 процессы написано что and forecasts процесс воркер процесса работы с привилегиями обычного пользователя дата таким образом мы можем узнать а под кем


[06:59 - 07:18] под каким пользователем и группы работает веб сервер для того чтобы посмотреть а атрибуты файла можно использовать команду xf вот таки флагами которая позволяет посмотреть больше


[07:18 - 07:36] здесь мы видим а в 1 колонке права доступа имя пользователя и группа файла причем права доступа они разделены на 3 группы


[07:36 - 07:51] вот это важно соответственно для левы тройка это для а права доступа для обладателя файла


[07:51 - 08:10] это для группы обладатель файла это для всех станциях как происходит проверка доступа когда вот сервер пытается открыть файл то есть сделать системный вызов open операционная система проверяет есть ли у процессов доступ права на чтение а данного файла


Step 5 (S-44755) 4.png

[08:10 - 08:28] а для того чтобы процесс смог открыть файл у него должны быть права на чтение файла и на исполнение директории в которых он лежит то есть родительская директория файла родительское родительское и так далее до корня файловой системы


[08:28 - 08:44] правом исполнениях директории нужно для того чтобы посмотреть чтобы получить доступ к файлам находящимся внутри директории права на чтение директорию при этом не в нем нет необходимости итак


[08:44 - 09:02] у нас есть в обсервер которая работает с какими то а от какого то пользователя группы и у нас есть файл у которого тоже есть пользователи группы проверка проходит следующим образом если совпадает пользователь то есть пользователь под которым работает веб сервер


[09:02 - 09:19] и пользователь файла то происходит проверка по 1 группе то есть по 1 тройке допустим совпали пользователей мы видим что в данном случае этого процесса есть права на чтение и запись файлов а


[09:19 - 09:37] если совпало группы процессы группа файла проверяется по 2 тройки то есть для процесс у которого совпадает группа есть право на чтение файла противном случае проверяется 3 тройка


[09:37 - 09:55] ну то есть э э в принципе кто угодно имеет права на чтение данного файла в пример а немножко назад вернулся посмотрим как этот пример у нас есть а которая работает от пользователя


Step 5 (S-44755) 5.png

[09:55 - 10:10] нас есть файл который принадлежит пользователь у нас в группе юзерс а мы видим что энгельс не совпадает ни по имени пользователя не по группе


[10:10 - 10:27] соответственно проверка будет проходить по 3 тройке а чтение этого файла есть а и значит на 1 с его сможет отдать но при условии что все директории в которых он лежит также доступна для


[10:27 - 10:44] исполнением а таким образом происходит проверка поступать если а при попытке открыть файл эту проверку не проходит а он вернется код ошибки 403


[10:44 - 10:51] и скорее всего сделай запись о том что мне удалось открыть данный файл