Как скопировать права доступа с папки на папку

Обновлено: 27.06.2024

Дело в том, что Windows часто бывает настроена таким образом, что обычный пользователь не имеет права изменять файлы в папке Program Files и некоторых других системных папках, например, в папке Windows. Делается это для повышения безопасности компьютера: ведь в системных папках хранится подавляющее юбольшинство установленных на компьютере программ и самый простой способ что-нибудь сломать - это как раз сломать что-нибудь в этих папках.

К счастью, есть целых два способа обойти эту проблему. Оба они будут работать только в том случае, если у вас есть возможность работать с Windows с правами администратора компьютера; в противном случае изменить эти файлы вы не сможете никак.

Способ первый: Запуск программы от имени администратора

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

Для этого найдите на рабочем столе иконку программы, которую вы хотите запустить (это может быть, например, Microsoft Word для изменения шаблонов печатных форм либо программа Блокнот для изменения файла SHOP.INI), щелкните в эту иконку правой кнопкой мыши и выберите в появившемся меню пункт Запуск от имени администратора:


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

Способ второй: Изменение прав доступа

Если у вас не получилось увидеть пункт меню Запуск от имени администратора, щелкнув правой кнопкой мыши на нужной иконке, то у вас тем не менее есть способ изменить необходимые файлы. Для этого щелкните правой кнопкой мыши по тому файлу, который вы хотите изменить, выберите пункт меню Свойства, переключитесь на закладку Безопасность и нажмите кнопку Изменить:


В открывшемся окне выделите строчку Пользователи и потом включите галочку Полный Доступ:


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

Внимание!
Ни в коем случае не изменяйте таким образом права на папку или даже на весь диск C навсегда: это приведет к большей уязвимости компьютера от вирусов и прочих вредоносных программ!

Если нужно не изменять, а добавить файлы в папку

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

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

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

Разграничение прав доступа в Windows


Статья о разграничении прав доступа в операционных системах Windows: дискретном и мандатном. В статье рассматриваются разграничения прав доступа к папкам и файлам на уровне операционной системы Windows и с помощью Secret Net.

Дискретное разграничение прав доступа

Свойства папки

Основные права доступа к папкам

В файловой системе NTFS в Windows XP существует шесть стандартных разрешений:

  1. Полный доступ;
  2. Изменить;
  3. Чтение и выполнение;
  4. Список содержимого папки;
  5. Чтение;
  6. Запись.

Основные права доступа к папкам Windows XP

Основные права доступа к папкам Windows10

Каталоги для примера

Выбор пользователя Список содержимого

По аналогии установите права для соответствующих папок.

После установки прав доступа проверьте их. Для этого войдите в операционную систему под пользователем, для которого устанавливали права, в моем случае это user.

Смена пользователя

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

Элементы разрешений на доступ

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

Элементы разрешений на доступ

Поэкспериментируйте с элементами и проверьте, как они работаю.

Элементы разрешений на доступ для записи

Элементы разрешений на доступ для записи

Владелец файла

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

Владелец файла в NTFS

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

В файловой системе NTFS поддерживается наследование разрешений. Если вы устанавливаете разрешение на папку, то оно наследуется для всех вложенных файлов и папок.

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

Отключение наследования разрешений

Запреты

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

Запреты на объекты в файловой системе NTFS

Запреты на объекты в файловой системе NTFS

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

Действующие разрешения

Разграничение прав доступа с помощью Secret Net (на примере версии 5.1)

При использовании Secret Net доступ к файлам осуществляется, в случае если пользователю присваивается соответствующий уровень допуска. В примере я использую Windows XP с установленным программным продуктом Secret Net 5.1.

Локальная политика безопасности

Полномочное управление доступом: название уровней конфиденциальности

Введите названия уровней. У меня это:

  • Низший – Общедоступно.
  • Средний – Конфиденциально.
  • Высший – Секретно.

Название уровней доступа

Настройка субъектов

Настройка субъектов

Далее установите все флажки.

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

Уровни доступа пользователя

Создание нового пользователя

Настройка объектов

Та или иная категория конфиденциальности является атрибутом папки или файла. Изменения этих атрибутов производятся уполномоченными пользователями (в данном случае Администратором). Категория конфиденциальности может присваиваться новым файлам или папкам автоматически или по запросу.

Автоматическое присвоение категорий конфиденциальности

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

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

Отказано в доступе

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

Повышение уровня конфиденциальности

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

Контроль потоков данных

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

Полномочное управление доступом: Режим работы

Выбор уровня конфиденциальности

На этом все, если у вас остались вопросы задавайте их в комментариях.

Анатолий Бузов

Обучаю HTML, CSS, PHP. Создаю и продвигаю сайты, скрипты и программы. Занимаюсь информационной безопасностью. Рассмотрю различные виды сотрудничества.

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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


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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

Хочешь научиться автоматически разворачивать и поддерживать высоконагруженные проекты? Тогда рекомендую познакомиться с онлайн курсом " Infrastructure as a code." в OTUS. Актуально для системных администраторов и devops инженеров. Подробности по .

Для меня было большим удивлением, что при простом копировании через windows машину права доступа не сохранялись. На обоих серверах была файловая система с поддержкой ACL. Установить потом права вручную можно было. То есть функционал весь был, но права доступа не сохранялись. Отмечу сразу, что сервер, с которого забирал информацию был QNAP, копировал на CentOS 7.

Вторым этапом была попытка примонтировать сразу на сервер приемник файловую шару через cifs. Но при этом права доступа ACL тоже не копировались. Стал искать информацию на эту тему в интернете и нашел, что действительно, через cifs acl права не переносятся. Там есть свои утилиты для проверки и назначения прав: getcifsacl и setcifsacl. Вручную ковыряться с этим не захотелось.

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

robocopy копирование прав доступа

Я крепко призадумался, как же быть. У меня не было времени разбираться подробно, нужно было быстро что-то придумать. Возможно я где-то ошибся или невнимательно смотрел и этот процесс все же можно провести быстро. Был бы рад совету на эту тему. Раньше мне не приходилось заниматься переносом данных с samba шар с сохранением доступа. А данные с виндовых шар без проблем переносятся с сохранением прав доступа. Даже не знал, что могут возникнуть такие проблемы при переносе информации с шар на samba.

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

Команда рекурсивно собрала права доступа со всех каталогов и файлов и записала в текстовый файл. Если шара очень большая, то файл будет внушительных размеров. У меня на шаре с 80 000 каталогов и 500 000 файлов такой файл занимал 240мб. Дальше было бы здорово сделать на сервере приемнике команду:

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

Почему-то в начале пути не стоял слеш. Команда setfacl сразу на это ругнулась. Плюс на сервере приемнике был другой путь, значит, его нужно отредактировать для всех описываемых объектов прав доступа во всем 240мб файле. Просто открыть его в текстовом редакторе и сделать замену затруднительно. Пришлось искать другое решение. На помощь пришла утилита sed:

С помощью этой команды я заменил фразу share/MD1_DATA на /shares и получил теперь правильный путь /shares/soft/Player.

Но это было не все. Дальше в файле с правами доступа встречались не доменные пользователи, а локальные того сервера, с которого переезжали. Нужно было их тоже всех удалить, иначе команда не отрабатывала, вылетала с ошибкой. В моем случае это были пользователи: admin, guest, everyone. Я опять же с помощью sed просто удалил все строки, где встречались эти фразы. Делал это на всякий случай поэтапно с проверкой на каждом этапе. Получилось вот так:

Можно было все в одной команде сделать, но я не очень силен в построении регулярных выражений, не было времени разбираться, сделал так. Утилита на удивление быстро работает. Буквально 2-3 секунды и строки удалены из файла.

После этого на сервере приемнике запустил команду:

И все доменные права доступа благополучно установились. Утилита работала достаточно долго, минут 15.

Надеюсь, мой опыт покажется кому-то полезным. А еще лучше, если бы мне кто-нибудь подсказал, как ту же самую операцию сделать проще и быстрее. Я почему-то убежден, что есть более простой способ. Возможно проблемы были из-за того, что один из серверов был QNAP. По идее это линукс, есть доступ по ssh, внутри samba. Но как там все подробно устроено не знаю, возможно что-то изменено.

Читайте также: