Файлы по способу доступа

Файлы по способу доступа

Тема 15. Способы доступа и организации файлов. Распределение файлов на диске

С точки зрения внутренней структуры (логической организации) файл — это совокупность однотипных записей, каждая из которых информирует о свойствах одного объекта. Записи могут быть фиксированной длины, переменной длины или неопределенной длины. Записи переменной длины в своем составе содержат длину записи, а неопределенной длины – специальный символ конца записи.

При этом каждая запись может иметь идентификатор, представляющий собой ключ, который может быть сложным и состоять из нескольких полей.

Существует три способа доступа к данным, расположенным во внешней памяти:

  1. Физически последовательный по порядку размещения записи в файле.
  2. Логическипоследовательный в соответствии с упорядочением по значению ключей. Для выполнения упорядочения создается специальный индексный файл, в соответствии с которым записи представляются для обработки.
  3. Прямой — непосредственно по ключу или физическому адресу записи.

Для организации доступа записи должны быть определенным образом расположены и взаимосвязаны во внешней памяти. Есть несколько способов логической организации памяти.

Записи располагаются в физическом порядке и обеспечивают доступ в физической последовательности. Таким образом, для обработки записи с номером N+1 необходимо последовательно обратиться к записям с номером 1, 2,….,N. Это универсальный способ организации файла периферийного устройства. Используется так же для организации входного/выходного потока.

Записи располагаются в логической последовательности в соответствии со значением ключей записи. Физически записи располагаются в различных местах файла. Логическая последовательность файла фиксируется в специальной таблице индексов, в которой значение ключей связывается с физическим адресом записи. При такой организации доступ к записям осуществляется логически последовательно в порядке возрастания или убывания значения ключа или по значению ключа.

Место записи в файле, ее физический адрес, определяется алгоритмом преобразования для ключа. Доступ к записям возможен только прямой. Алгоритм преобразования ключа называется хешированием. Ключ, использующий алгоритм хеширования, преобразуется в номер записи.

Это организация, при которой осуществляется прямой доступ по порядковому номеру записи или по физическому адресу.

Организация, в которой файл состоит из последовательных подфайлов (разделов), первый из которых является оглавлением и содержит имена и адреса остальных подфайлов. При такой организации осуществляется комбинированныйдоступ: индексный прямой к разделу и последовательный в разделах.

Определить права доступа к файлу — значит определить для каждого пользователя набор операций, которые он может применить к данному файлу. В разных файловых системах может быть определен свой список дифференцируемых операций доступа. Этот список может включать следующие операции:

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

В самом общем случае права доступа могут быть описаны матрицей прав доступа, в которой столбцы соответствуют всем файлам системы, строки — всем пользователям, а на пересечении строк и столбцов указываются разрешенные операции. В некоторых системах пользователи могут быть разделены на отдельные категории. Для всех пользователей одной категории определяются единые права доступа. Например, в системе UNIX все пользователи подразделяются на три категории: владельца файла, членов его группы и всех остальных. Различают два основных подхода к определению прав доступа:

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

Физически том дисковой памяти — это отдельный носитель внешней памяти, представляющий собой совокупность блоков данных. Блок — это единица физической передачи данных (единица обмена данных с устройством). Запись — это единица ввода/вывода программы. Блок может содержать несколько логических записей, что минимизирует число операций ввода/вывода (рис.1).

Рисунок 1. Коэффициент блокирования 7

Физически файл — это совокупность выделенных блоков памяти (область внешней памяти). Существует два вида организации накопителей на магнитном диске:

1.Трековый, в котором весь диск подразделяется на треки (дорожки) фиксированной длины, на которых размещаются блоки переменного размера. Адресом блока является тройка:

Единицей выделения памяти является трек или цилиндр. Цилиндр представляет собой область памяти, образованную всеми дорожками, доступными на магнитных поверхностях без перемещения магнитных головок.

2.Секторный, в котором диск разбивается на блоки фиксированного размера, обычно кратного 256 байтам. Адресом блока является его порядковый номер на носителе.

Работа с дисковой памятью включает в себя 4 основные процедуры:

  1. Инициализация тома (форматирование).
  2. Выделение и освобождение памяти файлу.
  3. Уплотнение внешней памяти (дефрагментация).
  4. Копирование, восстановление томов для обеспечения целостности.
  • форматирования диска на дорожки (сектора);
  • определения сбойных участков диска;
  • присвоения метки тому;
  • создания оглавления тома;
  • записи ОС, если это необходимо.

Выделение и освобождение места для файлов на томе аналогично стратегии размещения ОП.

  1. Непрерывное распределение памяти, когда файлу выделяется непрерывный участок памяти. Для задания адреса файла в этом случае достаточно указать только номер начального блока. Достоинство этого метода — простота. Очевидный недостаток — проблема расширения файла и фрагментация. Уплотнение или дефрагментация используется для восстановления памяти.
  2. Секторное или блочное распределение, когда файлу выделяется логически связанные блоки, физически размещенные в любом месте. При таком способе в начале каждого блока содержится указатель на следующий блок. В этом случае адрес файла также может быть задан одним числом — номером первого блока. В отличие от предыдущего способа, каждый блок может быть присоединен в цепочку какого-либо файла и, следовательно, фрагментация отсутствует. Файл может изменяться во время своего существования, наращивая число блоков. Недостатком является сложность реализации доступа к произвольно заданному месту файла: для того чтобы прочитать пятый по порядку блок файла, необходимо последовательно прочитать четыре первых блока, прослеживая цепочку номеров блоков.

Популярным способом, используемым, например, в файловой системе FAT операционной системы MS-DOS, является использование связанного списка индексов. С каждым блоком (кластером) связывается некоторый элемент — индекс. Индексы располагаются в отдельной области диска (в MS-DOS это таблица FAT). Если некоторый блок распределен файлу, то индекс этого блока содержит номер следующего блока данного файла. При этом для каждого файла в каталоге имеется поле, в котором отмечается номер начального индекса для кластера, входящего в файл. Последний индекс содержит специальный маркер конца файла. Такая физическая организация сохраняет все достоинства предыдущего способа и снимает отмеченный недостаток: для доступа к произвольному месту файла достаточно прочитать только блок индексов, отсчитать нужное количество блоков файла по цепочке и определить номер нужного блока.

В заключение рассмотрим задание физического расположения файла путем простого перечисления номеров блоков, занимаемых этим файлом. ОС UNIX использует вариант данного способа, позволяющий обеспечить фиксированную длину адреса независимо от размера файла. Для хранения адреса файла выделено 13 полей. Если размер файла меньше или равен 10 блокам, то номера этих блоков непосредственно перечислены в первых десяти полях адреса. Если размер файла больше 10 блоков, то следующее, 11-е поле содержит адрес блока, в котором могут быть расположены еще 128 номеров следующих блоков файла. Если файл больше, чем 10+128 блоков, то используется 12-е поле, в котором находится номер блока, содержащего 128 номеров блоков, которые содержат по 128 номеров блоков данного файла. И, наконец, если файл больше 10+128+128(128, то используется последнее, 13-е поле для тройной косвенной адресации, что позволяет задать адрес файла, имеющего размер максимум: 10+ 128 + 128(128 + 128(128(128.

В некоторых файловых системах запросы к внешним устройствам, в которых адресация осуществляется блоками (диски, ленты), перехватываются промежуточным программным слоем-подсистемой буферизации. Подсистема буферизации представляет собой буферный пул, располагающийся в оперативной памяти, и комплекс программ, управляющих этим пулом и позволяющий выполнять опережающее считывание блоков файла при последовательном доступе. Каждый буфер пула имеет размер, равный одному блоку. При поступлении запроса на чтение некоторого блока подсистема буферизации просматривает свой буферный пул и, если находит требуемый блок, то копирует его в буфер запрашивающего процесса. Операция ввода-вывода считается выполненной, хотя физического обмена с устройством не происходило. Очевиден выигрыш во времени доступа к файлу. Если же нужный блок в буферном пуле отсутствует, то он считывается с устройства и одновременно с передачей запрашивающему процессу копируется в один из буферов подсистемы буферизации. При отсутствии свободного буфера на диск вытесняется наименее используемая информация. Таким образом, подсистема буферизации работает по принципу кэш-памяти. Кроме того, буферизация позволяет одновременно обрабатывать программой текущий блок и читать/писать в другие буфера следующий блок.

Источник

Права доступа к файлам и папкам простым языком.

На просторах России много фирм и мелких предприятий не имеют в штате своего системного администратора на постоянной основе или приходящего время от времени. Фирма растёт и рано или поздно одной расшаренной папки в сети, где каждый может делать что захочет, становится мало. Требуется разграничение доступа для разных пользователей или групп пользователей на платформе MS Windows. Линуксоидов и опытных админов просьба не читать статью.

Самый лучший вариант — взять в штат опытного админа и задуматься о покупке сервера. Опытный админ на месте сам решит: поднимать ли MS Windows Server с Active Directory или использовать что-то из мира Linux.

Но данная статья написана для тех, кто решил пока мучаться самостоятельно, не применяя современные программные решения. Попытаюсь объяснить хотя бы как правильно реализовывать разграничение прав.

Прежде чем начать хотелось бы разжевать пару моментов:

  • Любая операционная система «узнаёт» и «различает» реальных людей через их учётные записи. Должно быть так: один человек = одна учётная запись.
  • В статье описывается ситуация, что в фирме нет своего админа и не куплен, к примеру, MS Windows Server. Любая обычная MS Windows одновременно обслуживает по сети не более 10 для WinXP и 20 человек для Win7. Это сделано фирмой Microsoft специально, чтобы клиентские Windows не перебегали дорогу серверам Windows и вы не портили бизнес Microsoft. Помните число 10-20 и когда в вашей фирме будет более 10-20 человек, вам придётся задуматься о покупке MS Windows Server или попросить кого-либо поднять вам бесплатный Linux Samba сервер, у которого нет таких ограничений.
  • Раз у вас нет грамотного админа, то ваш обычный комп с клиентской MS Windows будет изображать из себя файловый сервер. Вы вынуждены будете продублировать на нём учётные записи пользователей с других компьютеров, чтобы получать доступ к расшаренным файлам. Другими словами, если есть в фирме ПК1 бухгалтера Оли с учётной записью olya, то и на этом «сервере» (именую его в дальнейшем как WinServer) нужно создать учётную запись olya с таким же паролем, как и на ПК1.
  • Люди приходят и уходят. Текучесть кадров есть везде и если вы, тот бедный человек, который не админ и назначен (вынужден) поддерживать ИТ вопросы фирмы, то вот вам совет. Делайте учётные записи, не привязанные к личности. Создавайте для менеджеров — manager1, manager2. Для бухгалтеров — buh1, buh2. Или что-то подобное. Ушёл человек? Другой не обидится, если будет использовать manager1. Согласитесь это лучше, чем Семёну использовать учётную запись olya, так как влом или некому переделывать и уже всё работает 100 лет.
  • Забудьте такие слова как: «сделать пароль на папку». Те времена, когда на ресурсы накладывался пароль давным давно прошли. Поменялась философия работы с различными ресурсами. Сейчас пользователь входит в свою систему с помощью учётной записи (идентификация), подтверждая себя своим паролем (аутентификация) и ему предоставляется доступ ко всем разрешённым ресурсам. Один раз вошёл в систему и получил доступ ко всему — вот что нужно помнить.
  • Желательно выполнять нижеперечисленные действия от встроенной учётной записи Администратор или от первой учётной записи в системе, которая по умолчанию входит в группу Администраторы.

Приготовление.

В Проводнике уберите упрощённый доступ к нужным нам вещам.

  • MS Windows XP. Меню Сервис — Свойства папки — Вид. Снять галочку Использовать мастер общего доступа
  • MS Windows 7. Нажмите Alt. Меню Сервис — Параметры папок — Вид. Снять галочку Использовать простой общий доступ к файлам.

Создайте на вашем компьютере WinServer папку, которая будет хранить ваше богатство в виде файлов приказов, договоров и так далее. У меня, как пример, это будет C:\dostup\. Папка обязательна должна быть создана на разделе с NTFS.

Доступ по сети.

На данном этапе нужно выдать в доступ по сети (расшарить — share) папку для работы с ней другими пользователями на своих компьютерах данной локальной сети.

И самое главное! Выдать папку в доступ с полным разрешением для всех! Да да! Вы не ослышались. А как же разграничение доступа?

Мы разрешаем по локальной сети всем подсоединяться к папке, НО разграничивать доступ будем средствами безопасности, сохраняемые в файловой системе NTFS, на которой расположена наш каталог.

  • MS Windows XP. На нужной папке (C:\dostup\) правой клавишей мыши и там Свойства. Вкладка Доступ — Открыть общий доступ к этой папке. Заполняем Примечание. Жмём Разрешение. Группа Все должна иметь по сети право Полный доступ.
  • MS Windows 7. На нужной папке (C:\dostup\) правой клавишей мыши и там Свойства. Вкладка Доступ — Расширенная настройка. Ставим галочку Открыть общий доступ к этой папке. Заполняем Примечание. Жмём Разрешение. Группа Все должна иметь по сети право Полный доступ.

Пользователи и группы безопасности.

Нужно создать необходимые учётные записи пользователей. Напоминаю, что если на многочисленных ваших персональных компьютерах используются различные учётные записи для пользователей, то все они должны быть созданы на вашем «сервере» и с теми же самыми паролями. Этого можно избежать, только если у вас грамотный админ и компьютеры в Active Directory. Нет? Тогда кропотливо создавайте учётные записи.

  • MS Windows XP. Панель Управления — Администрирование — Управление компьютером.
    Локальные пользователи и группы — Пользователи. Меню Действие — Новый пользователь.
  • MS Windows 7. Панель Управления — Администрирование — Управление компьютером.
    Локальные пользователи и группы — Пользователи. Меню Действие — Создать пользователя.

Теперь очередь за самым главным — группы! Группы позволяют включать в себя учётные записи пользователей и упрощают манипуляции с выдачей прав и разграничением доступа.

Чуть ниже будет объяснено «наложение прав» на каталоги и файлы, но сейчас главное понять одну мысль. Права на папки или файлы будут предоставляться группам, которые образно можно сравнить с контейнерами. А группы уже «передадут» права включённым в них учётным записям. То есть нужно мыслить на уровне групп, а не на уровне отдельных учётных записей.

  • MS Windows XP. Панель Управления — Администрирование — Управление компьютером.
    Локальные пользователи и группы — Группы. Меню Действие — Создать группу.
  • MS Windows 7. Панель Управления — Администрирование — Управление компьютером.
    Локальные пользователи и группы — Группы. Меню Действие — Создать группу.

Нужно включить в нужные группы нужные учётные записи. Для примера, на группе Бухгалтеры правой клавишей мыши и там Добавить в группу или Свойства и там кнопка Добавить. В поле Введите имена выбираемых объектов впишите имя необходимой учётной записи и нажмите Проверить имена. Если всё верно, то учётная запись изменится к виду ИМЯСЕРВЕРА\учётная_запись. На рисунке выше, учётная запись buh3 была приведена к WINSERVER\buh3.

Итак, нужные группы созданы и учётные записи пользователей включены в нужные группы. Но до этапа назначения прав на папках и файлах с помощью групп хотелось бы обсудить пару моментов.

Стоит ли заморачиваться с группой, если в ней будет одна учётная запись? Считаю, что стоит! Группа даёт гибкость и маневренность. Завтра вам понадобится ещё одному человеку Б дать те же права, что и определённому человеку с его учётной записью А. Вы просто добавите учётную запись Б в группу, где уже имеется А и всё!

Намного проще, когда права доступа выданы группам, а не отдельным персонам. Вам остаётся лишь манипулировать группами и включением в них нужных учётных записей.

Права доступа.

Желательно выполнять нижеперечисленные действия от встроенной учётной записи Администратор или от первой учётной записи в системе, которая по умолчанию входит в группу Администраторы.

Вот и добрались до этапа, где непосредственно и происходит магия разграничения прав доступа для различных групп, а через них и пользователям (точнее их учётным записям).

Итак, у нас есть директория по адресу C:\dostup\, которую мы уже выдали в доступ по сети всем сотрудникам. Внутри каталога C:\dostup\ ради примера создадим папки Договора, Приказы, Учёт МЦ. Предположим, что есть задача сделать:

  • папка Договора должна быть доступна для Бухгалтеров только на чтение. Чтение и запись для группы Менеджеров.
  • папка УчётМЦ должна быть доступна для Бухгалтеров на чтение и запись. Группа Менеджеров не имеет доступа.
  • папка Приказы должна быть доступна для Бухгалтеров и Менеджеров только на чтение.

На папке Договора правой клавишей и там Свойства — вкладка Безопасность. Мы видим что какие-то группы и пользователи уже имеют к ней доступ. Эти права были унаследованы от родителя dostup\, а та в свою очередь от своего родителя С:

Мы прервём это наследование прав и назначим свои права-хотелки.

Жмём кнопку Дополнительно — вкладка Разрешения — кнопка Изменить разрешения.

Сначала прерываем наследование прав от родителя. Снимаем галочку Добавить разрешения, наследуемые от родительских объектов. Нас предупредят, что разрешения от родителя не будут применяться к данному объекту (в данном случае это папка Договора). Выбор: Отмена или Удалить или Добавить. Жмём Добавить и права от родителя останутся нам в наследство, но больше права родителя на нас не будут распространяться. Другими словами, если в будущем права доступа у родителя (папка dostup) изменить — это не скажется на дочерней папке Договора. Заметьте в поле Унаследовано от стоит не унаследовано. То есть связь родитель — ребёнок разорвана.

Теперь аккуратно удаляем лишние права, оставляя Полный доступ для Администраторов и Система. Выделяем по очереди всякие Прошедшие проверку и просто Пользователи и удаляем кнопкой Удалить.

Кнопка Добавить в данном окне Дополнительные параметры безопасности предназначена для опытных админов, которые смогут задать особые, специальные разрешения. Статья же нацелена на знания опытного пользователя.

Мы ставим галочку Заменить все разрешения дочернего объекта на разрешения, наследуемые от этого объекта и жмём Ок. Возвращаемся назад и снова Ок, чтобы вернуться к простому виду Свойства.

Данное окно позволит упрощённо достигнуть желаемого. Кнопка Изменить выведет окно «Разрешения для группы».

Жмём Добавить. В новом окне пишем Бухгалтеры и жмём «Проверить имена» — Ок. По умолчанию даётся в упрощённом виде доступ «на чтение». Галочки в колонке Разрешить автоматически выставляются «Чтение и выполнение», «Список содержимого папки», «Чтение». Нас это устраивает и жмём Ок.

Теперь по нашему техническому заданию нужно дать права на чтение и запись для группы Менеджеры. Если мы в окне Свойства, то снова Изменить — Добавить — вбиваем Менеджеры — Проверить имена. Добавляем в колонке Разрешить галочки Изменение и Запись.

Теперь нужно всё проверить!

Следите за мыслью. Мы приказали, чтобы папка Договора не наследовала права от свого родителя dostup. Приказали дочерним папкам и файлам внутри папки Договора наследовать права от неё.

На папку Договора мы наложили следующие права доступа: группа Бухгалтеры должна только читать файлы и открывать папки внутри, а группа Менеджеры создавать, изменять файлы и создавать папки.

Следовательно, если внутри директории Договора будет создаваться файл-документ, на нём будут разрешения от его родителя. Пользователи со своими учётными записями будут получать доступ к таким файлам и каталогам через свои группы.

Зайдите в папку Договора и создайте тестовый файл договор1.txt

На нём щелчок правой клавишей мыши и там Свойства — вкладка Безопасность — Дополнительно — вкладка Действующие разрешения.

Жмём Выбрать и пишем учётную запись любого бухгалтера, к примеру buh1. Мы видим наглядно, что buh1 получил права от своей группы Бухгалтеры, которые обладают правами на чтение к родительской папке Договора, которая «распространяет» свои разрешения на свои дочерние объекты.

Пробуем manager2 и видим наглядно, что менеджер получает доступ на чтение и запись, так как входит в группу Менеджеры, которая даёт такие права для данной папки.

Абсолютно так же, по аналогии с папкой Договора, накладываются права доступа и для других папок, следуя вашему техническому заданию.

  • Используйте разделы NTFS.
  • Когда разграничиваете доступ на папки (и файлы), то манипулируйте группами.
  • Создавайте учётные записи для каждого пользователя. 1 человек = 1 учётная запись.
  • Учётные записи включайте в группы. Учётная запись может входить одновременно в разные группы. Если учётная запись находится в нескольких группах и какая-либо группа что-то разрешает, то это будет разрешено учётной записи.
  • Колонка Запретить (запрещающие права) имеют приоритет перед Разрешением. Если учётная запись находится в нескольких группах и какая-либо группа что-то запрещает, а другая группа это разрешает, то это будет запрещено учётной записи.
  • Удаляйте учётную запись из группы, если хотите лишить доступа, которого данная группа даёт.
  • Задумайтесь о найме админа и не обижайте его деньгами.

Задавайте вопросы в комментариях и спрашивайте, поправляйте.

Видеоматериал показывает частный случай, когда нужно всего лишь запретить доступ к папке, пользуясь тем, что запрещающие правила имеют приоритет перед разрешающими правила.

Источник

Читайте также:  Печорский угольный бассейн добыча закрытым способом
Оцените статью
Разные способы