Наследование прав на файлы в конечно каталоге

07.02.2018 Выкл. Автор admin

Настройка прав для файлов и папок

Компьютеры, работающие под управлением операционных систем Windows, могут работать с различными файловыми системами, такими как FAT32 и NTFS. Не вдаваясь в подобности можно сказать одно, что отличаются они главным – файловая система NTFS позволяет настраивать параметры безопасности для каждого файла или папки(каталога). Т.е. для каждого файла или папки файловая система NTFS хранит так называемые списки ACL(Access Control List), в которых перечислены все пользователи и группы, которые имеют определенные права доступа к данному файлу или папке. Файловая система FAT32 такой возможности лишена.

В файловой системе NTFS каждый файл или папка могут иметь следующие права безопасности:

  • Чтение — Разрешает обзор папок и просмотр списка файлов и подпапок, просмотр и доступ к содержимому файла;
  • Запись — Разрешает добавление файлов и подпапок, запись данных в файл;
  • Чтение и Выполнение — Разрешает обзор папок и просмотр списка файлов и подпапок, разрешает просмотр и доступ к содержимому файла, а также запуск исполняемого файла;
  • Список содержимого папки — Разрешает обзор папок и просмотр только списка файлов и подпапок. Доступ к содержимому файла это разрешение не дает!;
  • Изменить — Разрешает просмотр содержимого и создание файлов и подпапок, удаление папки, чтение и запись данных в файл, удаление файла;
  • Полный доступ — Разрешает просмотр содержимого, а также создание, изменение и удаление файлов и подпапок, чтение и запись данных, а также изменение и удаление файла

Перечисленные выше права являются базовыми. Базовые права состоят из особых прав. Особые права — это более подробные права, из которых формируются базовые права. Использование особых прав дает очень большую гибкость при настройке прав доступа.

Список особых прав доступа к файлам и папкам:

  • Обзор папок/Выполнение файлов — Разрешает перемещение по структуре папок в поисках других файлов или папок, выполнение файлов;
  • Содержание папки/Чтение данных — Разрешает просмотр имен файлов или подпапок, содержащихся в папке, чтение данных из файла;
  • Чтение атрибутов — Разрешает просмотр таких атрибутов файла или папки, как «Только чтение» и «Скрытый»;
  • Чтение дополнительных атрибутов — Разрешает просмотр дополнительных атрибутов файла или папки;
  • Создание файлов / Запись данных — Разрешает создание файлов в папке (применимо только к папкам), внесение изменений в файл и запись поверх имеющегося содержимого (применимо только к файлам);
  • Создание папок / Дозапись данных — Разрешает создание папок в папке (применимо только к папкам), внесение данных в конец файла, но не изменение, удаление или замену имеющихся данных (применимо только к файлам);
  • Запись атрибутов — Разрешает или запрещает смену таких атрибутов файла или папки, как «Только чтение» и «Скрытый»;
  • Запись дополнительных атрибутов — Разрешает или запрещает смену дополнительных атрибутов файла или папки;
  • Удаление подпапок и файлов — Разрешает удаление подпапок и файлов даже при отсутствии разрешения «Удаление» (применимо только к папкам);
  • Удаление — Разрешает удаление файла или папки. Если для файла или папки отсутствует разрешение «Удаление», объект все же можно удалить при наличии разрешения «Удаление подпапок и файлов» для родительской папки;
  • Чтение разрешений — Разрешает чтение таких разрешений на доступ к файлу или папке, как «Полный доступ», «Чтение» и «Запись»;
  • Смена разрешений — Разрешает смену таких разрешений на доступ к файлу или папке, как «Полный доступ», «Чтение» и «Запись»;
  • Смена владельца — Разрешает вступать во владение файлом или папкой;
  • Синхронизация — Разрешает ожидание различными потоками файлов или папок и синхронизацию их с другими потоками, могущими занимать их. Это разрешение применимо только к программам, выполняемым в многопоточном режиме с несколькими процессами;

. Все базовые и особые права являются как разрешающими так и запрещающими.

Все разрешения файлов и папок делятся на два вида: явные и наследуемые. Механизм наследования подразумевает автоматическую передачу чего-либо от родительского объекта дочернему. В файловой системе это означает, что любой файл или папка могут наследовать свои права от родительской папки. Это очень удобный механизм, избавляющий от необходимости назначать явные права для всех вновь создаваемых файлов и папок. Представьте, что у вас на каком-то диске несколько тысяч файлов и папок, как им всем раздать права доступа, сидеть и каждому назначать? Нет. Тут работает механизм наследования. Создали папку в корне диска, папка автоматически получила точно такие же права, как и корень диска. Изменили права для вновь созданной папки. Потом внутри созданной папки создали еще вложенную папку. У этой вновь созданной вложенной папки права унаследуются от родительской папки и т.д. и т.п.

Результатом применения явных и наследуемых прав и будут фактические права на конкретную папку или файл. Подводных камней при этом очень много. Например, у вас есть папка, в которой вы разрешаете пользователю «Вася» удалять файлы. Потом вы вспоминаете, что в этой папке есть один очень важный файл, который Вася ни в коем случае не должен удалить. Вы устанавливаете на важный файл явный запрет (особое право запрета «Удаление»). Казалось бы, дело сделано, файл явно защищен от удаления. А Вася спокойно заходит в папку и удаляет этот суперзащищенный файл. Почему? Потому что Вася имеет права удаления от родительской папки, которые в данном случае являются приоритетными.

Старайтесь не пользоваться назначением прав, непосредственно, на файлы, назначайте права на папки.

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

Например. Если компьютер включен в домен, то в его локальную группу «Пользователи» автоматически добавляется группа «Domain Users»(пользователи домена), а в локальную группу «Администраторы» автоматически добавляется группа «Domain Admins»(администраторы домена), и соответственно, назначая на какую-либо папку права группе локальных пользователей, вы автоматически назначаете права для всех пользователей домена.

Не расстраивайтесь если все описанное выше сразу не очень понятно. Примеры и самостоятельная работа быстро исправят положение!

Переходим к конкретике.

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

Итак, чтобы назначить или изменить права на файл или паку необходимо в проводнике нажать правой клавишей мышки на нужный файл или папку выбрать пункт меню «Свойства»

У вас должно открыться окно с закладкой «Безопасность»

Если такой закладки нет, тогда делаем следующее. Запускаем Проводник, затем открываем меню «Сервис»«Свойства папки…»

В открывшемся окне переходим на закладку «Вид» и снимаем галочку с параметра «Использовать простой общий доступ к файлам(рекомендуется)»

Все, теперь вам доступны все свойства файловой системы NTFS.

Возвращаемся к закладке «Безопасность».

В открывшемся окне нам доступно много информации. Сверху находится список «Группы и пользователи:», в котором перечислены все пользователи и группы, имеющие права доступа к данной папке (стрелка 1). В нижнем списке показаны разрешения для выделенного пользователя/группы(стрелка 2). В данном случае это пользователь SYSTEM. В данном списке разрешений видны базовые разрешения. Обратите внимание, что в колонке «Разрешить» галочки имеют блеклый цвет и не доступны для редактирования. Это говорит о том, что данные права унаследованы от родительской папки. Еще раз, в данном случае все права пользователя SYSTEM на папку «Рабочая» полностью унаследованы от родительской папки, и пользователь SYSTEM имеет все права («Полный доступ»)

Выделяя в списке нужную группу или пользователя, мы можем посмотреть базовые права для этой группы или пользователя. Выделив пользователя «Гостевой пользователь ([email protected] можно увидеть, что у него все права явные

А вот группа «Пользователи (KAV-VM1\Пользователи» имеет комбинированные права, часть из них унаследована от родительской папки(серые квадратики напротив «Чтение и выполнение», «Список содержимого папки», «Чтение»), а часть установлено явно – это право «Изменить» и «Запись»

. Внимание. Обратите внимание на названия пользователей и групп. В скобочках указывается принадлежность группы или пользователя. Группы и пользователи могут быть локальными, т.е. созданными непосредственно на этом компьютере, а могут быть доменными. В данном случае группа «Администраторы» локальная, так как запись в скобочках указывает имя компьютера KAV-VM1, а после слэша уже идет само название группы. Напротив, пользователь «Гостевой пользователь» является пользователем домена btw.by, на это указывает запись полного имени [email protected]

Зачастую при просмотре или изменении прав можно ограничиться окном с базовыми правами, но иногда этого недостаточно. Тогда можно открыть окно, в котором изменяются особые разрешения, владелец или просматриваются действующие разрешения. Как это сделать? Нажимаем на кнопку «Дополнительно». Открывается вот такое окно

Другие публикации:  Доверенность на оплату за обучение

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

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

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

Это происходит потому, что для одного пользователя или группы могут быть различные виды прав: явные и наследуемые, разрешающие или запрещающие, различающиеся по виду наследования. В данном случае права на чтение для группы «Пользователи» наследуются от родительской папки, а права на изменение добавлены явно.

Примеры назначения прав.

. Все примеры будут идти с нарастанием сложности. Читайте и разбирайтесь с ними в такой же последовательности как они идут в тексте. Однотипные действия в последующих примерах буду опускать, чтобы сократить объём текста. 🙂

Пример 1. Предоставление права доступа к папке определенной локальной группе безопасности только на чтение.

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

Сначала создадим локальную группу, в которую включим весь список нужных нам пользователей. Можно и без группы, но тогда для каждого пользователя нужно будет настраивать права отдельно, и каждый раз, когда понадобится дать права новому человеку, потребуется проделывать все операции заново. А если права предоставить локальной группе, то для настройки нового человека понадобится только одно действие – включение этого человека в локальную группу. Как создать локальную группу безопасности читаем в статье «Настройка локальных групп безопасности».

Итак. Мы создали локальную группу безопасности с именем «Коллегам для чтения»,

в которую добавили всех нужных пользователей.

Теперь настраиваю права доступа к папке. В данном примере я сделаю права доступа созданной группе «Коллегам для чтения» на папку «Фото».

Нажимаю правой клавишей мышки на папку «ФОТО» и выбираю пункт меню «Свойства», перехожу на закладку «Безопасность».

В открывшейся закладке «Безопасность» отображаются текущие права папки «ФОТО». Выделив группы и пользователей в списке, можно увидеть, что права этой папки наследуются от родительской папки(серые галочки в столбце «Разрешить»). В данной ситуации я не хочу, чтобы кто-то кроме вновь созданной группы имел хоть какой-то доступ к папке «ФОТО».

Поэтому, я должен убрать наследование прав и удалить ненужных пользователей и группы из списка. Нажимаю кнопку «Дополнительно». В открывшемся окне,

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

В большинстве случаев я советую нажимать здесь кнопку «Копировать», так как если выбрать «Удалить», то список прав становится пуст, и вы можете фактически забрать права у самого себя. Да, не удивляйтесь, это очень легко сделать. И если вы не администратор на своем компьютере, или не пользователь группы «Операторы архива», то восстановить права вам будет невозможно. Ситуация напоминает дверь с автоматической защелкой, которую вы закрываете, оставляя ключи внутри. Поэтому, лучше всегда нажимайте кнопку «Копировать», а потом удаляйте ненужное.

После того, как я нажал «Копировать», я опять возвращаюсь в предыдущее окно, только уже со снятой галочкой.

Нажимаю «ОК» и возвращаюсь в окно базовых прав. Все права стали доступны для редактирования. Мне нужно оставить права для локальной группы «Администраторы» и пользователя SYSTEM, а остальных удалить. Я поочередно выделяю ненужных пользователей и группы и нажимаю кнопку «Удалить».

В результате у меня получается вот такая картина.

Теперь мне остается добавить только группу «Коллегам для чтения» и назначить этой группе права на чтение.

Я нажимаю кнопку «Добавить», и в стандартном окне выбора выбираю локальную группу «Коллегам для чтения». Как работать с окном выбора подробно описано в статье «Настройка локальных групп безопасности».

В результате всех действий, я добавил группу «Коллегам для чтения» в список базовых прав, при этом для этой группы автоматически установились права «Чтение и выполнение», «Список содержимого папки», «Чтение».

Все, остается нажать кнопку «ОК» и права назначены. Теперь любой пользователь, который принадлежит локальной группе безопасности «Коллегам для чтения», получит возможность читать все содержимое папки «ФОТО».

Пример 2. Предоставление персонального доступа пользователям к своим подпапкам в папке.

Данная ситуация тоже распространена на практике. Например, у вас есть папка для новых сканированных документов. В этой папке для каждого пользователя создана своя отдельная подпапка. После сканирования документ забирается пользователем из свой подпапки. Задача назначить права так, чтобы каждый пользователь видел содержимое только своей подпапки и не мог получить доступ в подпапку коллеги.

Для данного примера я немного перефразирую задание. Предположим у нас есть общая папка «ФОТО», в которой для каждого пользователя есть подпапка. Необходимо настроить права так, чтобы пользователь имел в своей подпапке все права, а подпапки других пользователей были бы ему недоступны.

Для такой настройки я полностью повторяю все действия из первого примера. В результате повторения у меня получаются права для всей группы «Коллегам для чтения» на чтение ко всем подпапкам. Но моя задача сделать видимой пользователю только «свою» подпапку. Поэтому, в окне базовых прав я нажимаю кнопку «Дополнительно»


и перехожу в окно особых прав, в котором выделяю группу «Коллегам для чтения» и нажимаю кнопку «Изменить»

В открывшемся окне я меняю правила наследования, вместо значения «Для этой папки, ее подпапок и файлов» в поле «Применять:» я выбираю значение «Только для этой папки».

Это самый ключевой момент этого примера. Значение «Только для этой папки» приводит к тому, что права чтения для группы «Коллегам для чтения» распространяются только на корень папки «ФОТО», но не на подпапки. Таким образом, каждый пользователь сможет добраться к своей папке, но заглянуть в соседнюю не сможет, права на просмотр подпапок у него нет. Если же не дать такое право группе совсем, то пользователи вообще не смогут попасть в свои подпапки. Файловая система не пропустит их даже в папку «ФОТО».

В итоге, пользователи смогут заходить в папку «ФОТО» но дальше в подпапки зайти не смогут!

В окне особых прав нажимаем «ОК» и выходим в предыдущее окно, теперь в столбце «Применять к» напротив группы «Коллегам для чтения» стоит значение «Только для этой папки».

Нажимаем во всех окнах «ОК» и выходим.

Все. Теперь остается настроить персональные права на каждую подпапку. Сделать это придется для каждой подпапки, права-то персональные для каждого пользователя.

Все нужные действия вы уже делали в первом примере, повторим пройденное 🙂

На подпапке «Пользователь1» нажимаю правой клавишей мышки, выбираю пункт меню «Свойства», перехожу на закладку «Безопасность». Нажимаю кнопку «Добавить»

и в стандартном окне выбора выбираю доменного пользователя с именем «Пользователь1».

Остается установить галочку для разрешающего права «Изменить». При этом галочка для разрешающего права «Запись» установится автоматически.

Нажимаем «ОК». Выходим. Остается повторить аналогичные действия для всех подпапок.

Пример 3. Предоставление персонального доступа пользователю к своей подпапке на запись, с одновременным запретом изменения или удаления.

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

Другие публикации:  Можно ли строить дом за материнский капитал

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

В открывшемся окне выделяем «Пользователь1» и нажимаем кнопку «Изменить»

В открывшемся окне мы видим стандартные права на чтение

Для того чтобы дать права пользователю создавать файлы ставим разрешение на право «Создание файлов/Запись данных», а на права «Удаление подпапок и файлов» и «Удаление» ставим запрет. Наследование оставляем стандартное «Для этой папки, ее подпапок и файлов».

После нажатия кнопки «ОК» и возврата в предыдущее окно можно увидеть существенные изменения. Вместо одной записи для «Пользователь1» появилось две.

Это потому, что установлены два вида прав, одни запрещающие, они идут в списке первыми, вторые разрешающие, они в списке вторые. Так как особые права являются нестандартными, то в столбце «Разрешение» стоит значение «Особые». При нажатии кнопки «ОК» появляется окно, к котором windows предупреждает, что есть запрещающие права и что они имеют более высокий приоритет. В переводе это означает туже ситуацию с самозакрывающейся дверью, ключи от которой находятся внутри. Подобную ситуацию я описывал во втором примере.

Все. Права установлены. Теперь «Пользователь1» сможет записать в свою папку любой файл, открыть его, но изменить или удалить не сможет.

А как же полная аналогия с реальным почтовым ящиком ?

Чтобы пользователь не смог открыть или скопировать записанный файл, нужно сделать следующее. Опять открываем разрешающие особые разрешения для «Пользователь1», и в поле «Применять:» меняем значение на «Только для этой папки»

При этом у пользователя не остается права на чтение или копирование файла.

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

Просмотр действующих прав.

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

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

Если же вы все-таки решите посмотреть действующие права, то для этого необходимо в окне базовых прав нажать кнопку «Дополнительно», и в окне особых прав перейти на закладку «Действующие разрешения».

Затем необходимо нажать кнопку «Выбрать» и в стандартном окне выбора выбрать нужного пользователя или группу.

После выбора можно увидеть «приблизительные» действующие разрешения.

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

Наследование прав на папку в линуксе

Бит setgid и команда umask

В продолжение статьи о бите setuid решил написать подобную и о бите setgid, тем более, что пример, который я здесь приведу был нашим домашним заданием на курсах Linux. Хотя задание на мой взгляд было простое справилось с ним только двое из шести слушателей. Я с задачей справился и хочу рассказать как именно.А задача была следующая: создать общую папку PUB для двух пользователей, для их совместной работы. Пользователи должны иметь возможность создавать файлы в папке и редактировать файлы друг друга. Другие пользователи доступа к папке не имеют.

Для решения этой задачи нам понадобится бит setgid. Напомню, что если этот бит установлен для каталога, то создаваемые в нем объекты будут получать группу владельца каталога, а не пользователя. Пояснение: есть пользователь igor. Он создает в каталоге (бит setgid не установлен) файл. Владелец данного файла будет igor, группа-владелец основная группа пользователя igor (по умолчанию igor). Если есть каталог, владелец которого root, а группа-владелец share, и бит setgid установлен, то владелец созданного объекта будет igor, а группа-владелец не igor, а share (как и у каталога). Далее в примере будет еще понятнее.

Сначала создаю сам каталог PUB:

После этого создаю группу PUB, которая будет группой-владельцем данного каталога:

$ sudo addgroup pub

Одним пользователем буду я (igor), а второго создаю:

$ sudo adduser olya

Теперь добавляю пользователей в группу pub:

$ sudo addgroup igor pub
[email protected]:

$ sudo addgroup olya pub

Проверяю, что пользователи добавились в группу pub:

$ less /etc/group | grep pub
pub:x:1002:igor,olya

Теперь изменяю группу-владельца каталога /PUB с root на pub:

$ sudo chown root:pub /PUB/

$ ls -l / | grep PUB
drwxr-xr-x 2 root pub 4096 2009-10-24 20:19 PUB

Теперь устанавливаю права на каталог /PUB и бит setgid и проверяю результат:

$ sudo chmod g+ws,o= /PUB/
[email protected]:

$ ls -l / | grep PUB
drwxrws— 2 root pub 4096 2009-10-24 20:19 PUB

Бит setgid установлен, прав у остальных пользователей нет.

Кажется все сделал. Проверяю. Захожу с учетной записью olya и создаю файл file.txt:

Из консоли пользователя igor пробую изменить файл:

$ echo Hello! > /PUB/file.txt
bash: /PUB/file.txt: Permission denied

и получаю сообщение, что доступ запрещен. Проверяю права на файл:

$ ls -l /PUB/
ls: невозможно открыть каталог /PUB/: Permission denied

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

$ ls -l /PUB/
итого 0
-rw-r–r– 1 olya pub 0 2009-10-24 22:01 file.txt

Вижу, что для группы pub файл имеет разрешения только на чтение. Вспоминаю о правах по умолчанию, шаблоне и команде umask. Для всех пользователей, шаблон задающий права для создаваемых объектов, установлен в 0022 (чтобы убедиться в этом можно набрать команду umask без параметров), что дает объекту файлу права 644 (или -rw-r–r–). Необходимо изменить этот шаблон для пользователей igor и olya, чтобы права для создаваемых файлов были -rw-rw—- . Для этого случая шаблон будет равен 0017. В Ubuntu этот шаблон задается в файле .profile, который расположен в домашнем каталоге каждого пользователя. Изменяю этот шаблон в файле .profile пользователей igor иolya. Необходимо найти строку со словом umask и изменить в ней значение на нужное. Захожу в систему повторно и проверяю полученный результат:

$ touch /PUB/file.txt
[email protected]:

$ echo Hello! > /PUB/file.txt
[email protected]:

$ cat /PUB/file.txt
Hello!
[email protected]:

$ touch /PUB/file2.txt
[email protected]:

$ echo Hello Igor! > file2.txt
[email protected]:

$ ls -l /PUB/
итого 8
-rw-rw—- 1 igor pub 12 2009-10-24 22:43 file2.txt
-rw-rw—- 1 olya pub 7 2009-10-24 22:38 file.txt

Вот теперь все в порядке. В каталоге /PUB создаются файлы, которые доступны для редактирования обоим пользователям. Задача довольно распространенная и теперь я знаю как ее можно решить, зная, что есть бит segid и команда umask.

Наследование прав на файлы и папки в Linux

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

Многие пользователи Windows в курсе, как работает система наследования прав. Суть её в том, что пользователи и группы будут иметь те же права на файлы и каталоги, которые они имели по отношению к родительскому каталогу. В Linux механизм наследования работает схожим образом и называется «правами по умолчанию». Несмотря на своё название, права по умолчанию вовсе не задаются автоматически. Их нужно прописать отдельно. Для примера используем каталог пользователя test:

-d указывает, что команда задаёт права по умолчанию, -m на редактирование прав.

Как видим на скриншоте, использование команды getfacl показало, что в свойствах каталога появились строчки, начинающиеся с default . Именно они и говорят нам о правах по умолчанию для владельца, ассоциированной группы и всех остальных. Не будем забывать, что ACL дозволяет установку прав доступа для отдельных пользователей и групп. Воспользуемся данной возможностью:

Другие публикации:  Заявление на получения бин

Этой командой мы дали пользователю tux те же права по умолчанию, что и у владельца каталога.

Для удаления прав по умолчанию используется команда

Если нужно удалить права по умолчанию и в подкаталогах, то добавьте ключ -R , указывающий на рекурсивное действие:

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

  • перемещение файлов и каталогов сохраняет ACL-доступы;
  • копирование файлов и каталогов не сохраняет ACL-доступы, если не использован ключ -p ;
  • архивирование и распаковка должны проводиться утилитой star (вместо tar).

Как видим, логика операций здесь довольно проста.

Другой интересной возможностью в работе с ACL-правами доступа будут так называемые автоматические операции.

Первой из таких операций является перенос ACL-прав. Это значит, что мы снимаем ACL-права с одного объекта и придаём их другому. Ранее мы рассматривали файл file_test в каталоге /home/test/. Перенесём ACL-доступы с него на файл file_test2 командой

На скриншоте выше можно наблюдать права на файл file_test2 до и после применения команды по переносу ACL-прав.

Если же нужно не перенести, а скопировать ACL-права с одного объекта на другой, то здесь поможет другая команда:

Эта команда не заменит права, как предыдущая, а добавит их к уже существующим.

Еще одним неплохим приемом может стать копирование ACL-прав на каталог в права по умолчанию этого же каталога. По сути, это то же самое, что мы провернули в начале статьи. Вот только тогда мы могли задать любые другие права по умолчанию. А вот если нам надо именно скопировать текущие права, то будет проще воспользоваться следующей командой:

Здесь dir1 и dir2 являются каталогами, между которыми мы копируем права по умолчанию.

Наследование прав на файлы в конечно каталоге

интересное кино.имеется файл-сервер novell. Средствами

этой замечательной ОС создана настоящая J файловая помойка.

Организация крупная -юзеров и папок очень много:(, причем . Задача-перенести

все эти права на файл-сервер в AD.

Собрали права с Novell в файлик, человек написал скрипт,

который пробивает с помощью ICACLS права следующим образом.

Есть папка diskP, в ней папки ASUTP и прочие,в папке ASUTP-папки otdel1,otdel2,otdel3.

В папке otdel1- папки user1,user2,user3. На верхнюю папку всем даны права.

Share -Все: полный доступ, NTFS -все:чтение,просмотр списка папок,выполнение.

Корневой диск мапится kix -скриптом в зависимости от членства в группах. На общем ресурсе вкл. ABE.

Допустим Пользователь1 имеет права на папку user 1(запись) и ни на что больше.

При подмапливании корневого каталога скриптом он ничего не видит, т.е. заходит

в подмапленный диск-а там пусто, так как у него нет разрешений на папки ASUTP ,

otdel 1. Если включить ему обход перекрестной проверки-он, явно задав путь до папки,

попадает в нее(этот вариант не подходит). Приходится делать так-пробивать пользователю права по всему дереву вверх. Т.е. на папки ASUTP и otdel 1(это очень упрощенно-есть куда более глубокая степень вложенности) –давать

Пользователю1 права:только на эту папку-чтение, а уже на папку user 1 полные права.

При тысячах пользователей, и степени вложенности до 5 уровня(а есть и больше) я бы сказал-это неудобно. Группы? При такой структуре их получится больше чем пользователей. Новелл позволяет не заморачиваться так.

Вопросы 1)Я чего-то не понимаю?

2) Как автоматизировать выдачу прав ( read , read and execute , list )-на все вышележащее дерево каталогов-есть ли инструмент(пусть платный)

3) Новелл оставлять нельзя

icacls.exe \\diskP /grant «Пользователь1»:(RX,RD,RA,RC,REA)
icacls.exe \\diskP\ASUTP /grant «Пользователь1»:(RX,RD,RA,RC,REA)
icacls.exe \\diskP\ASUTP\otdel1 /grant «Пользователь1»:(RX,RD,RA,RC,REA)
icacls.exe \\diskP\ASUTP\otdel1\user1 /grant «Пользователь1»:(CI)(OI)M

Пользователь1 получит разрешение на изменение только на папку \\diskP\ASUTP\otdel1\user1 (и на все папки и файлы в ней), все остальные при включенном ABE будут для него пустыми. Вместо Пользователь1 лучше использовать группу безопасности, в которую он входит (например ACL_diskP_View для верхней папки).

  • Помечено в качестве ответа Nikita Panov Moderator 8 апреля 2010 г. 8:30

Share -Все: полный доступ, NTFS -все:чтение,просмотр списка папок,выполнение.

Допустим Пользователь1 имеет права на папку user 1(запись) и ни на что больше.

При подмапливании корневого каталога скриптом он ничего не видит, т.е. заходит в подмапленный диск-а там пусто, так как у него нет разрешений на папки ASUTP, otdel1
Не совсем понял. То говорите, что с корня у всех разрешения есть, то их уже нет. У Вас разрешения наследуются с верхней папки или нет?

Если включить ему обход перекрестной проверки-он, явно задав путь до папки,

попадает в нее(этот вариант не подходит). Приходится делать так-пробивать пользователю права по всему дереву вверх.

Или Traverse folder или Inheritance. Иного механизма нет.

Можно поподробнее про Traverse folde r ? Это что и как этим воспользоваться в данном случае? Посмотрите, пожалуйста, описание ниже –на структуру вложенности.

disk P(права на чтение)-> ASUTP (прав нет, группа диск P убрана)->otdel1(прав нет)-> user 1( права на запись). Надо чтобы по описанной ниже схеме Пользователю 1 примапливался

disk P, и далее он видел только папки ASUTP (а находящиеся с ней на одном уровне-НЕТ),

->otdel1(а находящиеся с ней на одном уровне-НЕТ)-> user 1(тут есть права на изменение/запись), нам надо явно задать на папки ASUTP и otdel 1 NTFS разрешения на «траверс папок/выполнение файлов»? Этого достаточно? А как это автоматизировать-есть инструменты?

увидит ли Пользователь1 -папки находящиеся на одном уровне с ASUTP(другие),otdel1,user1, если группе в которую он входит, даны разрешения traverse folder на все папки? При том что включен ABE

Насчет того что с корня разрешение есть, невнятно описал, исправляюсь

нужных пользователей заносим в группу diskP

start /wait kix32.exe -f map.txt

IF Open(1, @LDRIVE + «\map.INI») = 0

USE $drive /DELETE

Т.е. на папочку «диск P » у всех права есть, далее (второй уровень-группа diskP убрана из наследования-в ntfs правах на папки) и для пользователя Пользователь1 есть права только

на папку (ну и по праву наследования-на тот свинарник, что он разведет внутри этой папки, если есть права на запись в нее) user 1, т.е P(права на чтение)-> ASUTP (прав нет, группа диск P убрана)->otdel1(прав нет)-> user 1( права на запись).

Если так сделать на Novell, начиная с версии 4(а версия 6.5 не поддерживается уже фирмой-производителем лет 5 уже)-то все работает на ура. Вопрос –когда такой удобный

функционал у MS появится? Конечно можно «лечить» -типа так делать неправильно и т.д.

Ну и последнее –самое интересное, после того как я сделаю на «промежуточные папки»

разрешение на traver se folder для Пользователя 1, у него будет стоять в правах на эту папку(если не лезть в дополнительные св-ва)-особые разрешения(?), ну и хотя бы безотносительно этого.

У нас босс разного уровня любят спрашивать –два таких вопроса

(дано-есть том DATA FIRM , 2 миллиона файлов, 50 тысяч папок, 9 корневых папок(мапящихся), 3 тысячи пользователей )

1) У кого есть права на папку (указывается папка)

2) Какие права на папки у такого-то пользователя в пределах тома DATA FIRM ?

В случае с Novell я знаю три ответа на данный вопрос.

1)Утилита NWADMIN(встроенная)-на первый вопрос-мгновенно, на второй-10 сек задержка.

2) консольная утилита rights-не так удобно как первая, чуть медленнее(на большом томе 1-10 минут), но позволяет вывод перенаправить в файл.

3) Платная утилита adrem server manager-то же что и вторая, но отчет в виде красивого html файла.

Что нам предложит MS в 2010 году( novell пять лет уже как не поддерживается). Поймите правильно, MS может предложить много всякого –о чем novell и мечтать не может,но…(бэкап открытых файлов, например- у NW это тоже заявлено, но не работает.

многие файлы открыты у нас всегда-это одно из миллиона преимуществ)

Кстати, nwadmin вышеописанную команду решает так.

В процедуру регистрации юзера пишешь map root N : и т.д. папочка корневая подмапится как диск. Дальше ->права на каталоги и файлы->далее выбираешь папку(вне зависимости от того на каком уровне вложенности она находится-> ставишь галки напротив нужных прав(read,write, modify и т.д-все и никаких traverse folder или inheritanse . Возможы более крутые и извращенные варианты. Вопрос-MS планирует сделать такой функционал?))

Если укажете аналоги от MS-платные/бесплатные-буду очень благодарен