восстановление прав доступа используя шаблон acl
Урок 18. Расширенные права доступа Linux с помощью ACL
Что делать, если для файла требуется установить различные права доступа для различных пользователей. Например, файл Report.pdf имеет следующие права доступа:
Что делать в этом случае?
ACL бывает 2-х типов:
Как видно ACL пока не настроен для данного файла. Настроем его исходя из вышеуказанных требований. Для установки расширенных прав используется следующая команда:
-m ( —modify=acl ) используется, когда необходимо модифицировать ACL.
u ( user ) означает пользователя.
Можно ли установить расширенные права для группы и остальных пользователей?
Да, можно. Для этого используются следующие ключи:
А как узнать, что у файла установлены расширенные права доступа?
А как удалить пользователя или группу из ACL?
После удаления ACL исчезает и символ “+”:
Мы рассмотрели ACL прав доступа. Теперь рассмотрим ACL по умолчанию. При создании списков доступа по умолчанию добавляется опция -d ( —default ), кроме того необходимо также указать и стандартные права доступа. Для примера создадим
Проверим что получилось:
Но ведь ничего не изменилось!
Все верно, права по умолчанию применяются только к вновь созданным и скопированным файлам. Создадим файл fileAfterACL и каталог folderAfterACL и посмотрим на их права:
Теперь ACL по умолчанию работает так, как надо.
А для чего используется маска во всех ACL?
Маска говорит о максимально назначенных правах для пользователей. Она вычисляется автоматически при добавлении пользователя.
Например, ACL имеет 2-х пользователей:
А как можно вручную изменить маску?
Список используемых команд:
Восстановление прав доступа используя шаблон acl
4. Пример использования SubInAcl для смены прав на раздел реестра из командной строки: 1 и 2
» width=»100%» style=»BORDER-RIGHT: #719bd9 1px solid; BORDER-LEFT: #719bd9 1px solid; BORDER-BOTTOM: #719bd9 1px solid» cellpadding=»6″ cellspacing=»0″ border=»0″>Сообщения: 83
Благодарности: 2
ProFFeSSoR, только что абсолютно спокойно удалил папку Персонажи. Перед удалением сменил ей владельца на себя и выдал себе полные права. » |
Сообщения: 113
Благодарности: 6
Phoenix, Согласен. В Windows уже выставлены на ключи реестра и системные файлы права более или менее оптимально, и их лучше не трогать. Раньше думалось наоборот
Единственная защита в XP, которую нашел, работа без административных прав. В Windows 7, к счастью, есть UAC.
Помогите, пожалуйста, разобраться с xcacls/cacls, subinacl, и, возможно, icacls
1. Вопрос №1: Как ДЛЯ ФАЙЛОВ И КЛЮЧЕЙ РЕЕСТРА правильно поставить права только на чтение (rx) в xcacls и subinacl для всех пользователей и групп, и при этом, чтобы объект нельзя было переименовать и удалить?
Ключ /p удаляет все остальные «галочки» доступа, ставя только те, что указаны в команде (в отличие от ключа /g, который добавляет «галочки» доступа, которые указаны в команде, к уже имеющимся).
Вопрос №2: Как галочка, например, «чтение атрибутов» в столбце РАЗРЕШИТЬ влияет на удаление и переименование файла?
Команды, по сути, одинаковые:
xcacls 1:\1.txt /p S-1-1-0:rx
subinacl /file c:\1.txt /perm /grant=S-1-1-0=rx
означают 5 галочек в столбце РАЗРЕШИТЬ: файл нельзя изменять (сохранять новую версию на месте старой), но, как я уже сказал, можно удалить. Если столбцы РАЗРЕШИТЬ и ЗАПРЕТИТЬ инверсировать (что описано в предыдущем абзаце), разрешения остаются теми же (чтение, чтение и выполнение), но в ЭЛЕМЕНТАХ РАЗРЕШЕНИЙ вместо строчки РАЗРЕШИТЬ появляется строчка ЗАПРЕТИТЬ и файл нельзя переименовать и удалить, что и нужно.
Но как это сделать?
Вопрос №3: как добиться в xcacls и subinacl, чтобы файл/ключ реестра нельзя было изменить, т.е. сохранить новую версию на месте старой, переименовать и удалить?
Сообщения: 113
Благодарности: 6
Изображения
0.png | |
(134.4 Kb, 12 просмотров) | |
1.png | |
(41.7 Kb, 6 просмотров) | |
2.png | |
(45.7 Kb, 6 просмотров) | |
3.png | |
(40.8 Kb, 7 просмотров) |
Сделал картинки, чтобы понятнее объяснить причину моего непонимания работы прав доступа в Windows 7.
Примечание: галочки «чтение разрешений» и «смена владельца» я не ставил, чтобы не было путаницы.
Картинка 1
Создан элемент разрешения, в котором 5 галок соответствуют набору «Чтение и выполнение».
Результат. Файл нельзя записать (перезаписать старую версию новой), но множно переименовать и удалить.
Картинка 3
К галочкам с Картинки 2 добавил галочки с Картинки 1.
Результат. Файл снова можно открыть, но нельзя перезаписать. И. его снова можно переименовать и удалить. Почему. Я не убирал явные запреты на удаление и дозапись, которые на Картинке 2. Каким образом разрешения из Картинки 1 отменяют запрет на переименование и удаление?
Еще один момент, который мне непонятен. Если оставить только запреты из Картинки 2, но добавить группу Пользователи и указать в ней хотя бы 1 ЛЮБОЕ разрешение, файл снова можно будет переименовать и удалить.
Каак сделать так, чтобы файл можно было читать и выполнять, но нельзя было переименовать и удалить. Интересует, как этого добиться не только обычными средствами (вкладкой безопасности), но и с помощью xcacls, subinacl и icacls. С icacls дела не имел, но в xcacls и subinacl можно менять файлы выборочно по типу, например, изменить права доступа для всех файлов с разрешением *.txt в папке или подпапках.
Чтобы убедиться, что все сделано без ошибок, в файле bat в конце напишите pause, чтобы окошко не закрывалось после выполнения команд.
Как задать, скопировать и восстановить NTFS разрешения с помощью ICACLS?
Для управления NTFS разрешениями в Windows можно использовать встроенную утилиту iCACLS. Утилита командной строки icacls.exe позволяет получить или изменить списки управления доступом (ACL — Access Control Lists) на файлы и папки на файловой системе NTFS. В этой статье мы рассмотрим полезные команды управления ntfs разрешениями в Windows с помощью icacls.
Просмотр и изменения NTFS прав на папки и файлы с помощью icacls
Текущие права доступа к любому объекту на NTFS томе можно вывести так:
Команда вернет список пользователей и групп, которым назначены права доступа. Права указываются с помощью сокращений:
Перед правами доступа указаны права наследования (применяются только к каталогам):
С помощью icacls вы можете изменить права доступа на папку.
Чтобы предоставить группе fs01_Auditors домена resource права чтения и выполнения (RX) на каталог, выполните:
icacls ‘C:\Share\Veteran\’ /grant resource\fs01_Auditors:RX
Чтобы удалить группу из ACL каталога:
icacls ‘C:\Share\Veteran\’ /remove resource\fs01_Auditors
С помощью icacls вы можете включить наследование NTFS прав с родительского каталога:
icacls ‘C:\Share\Veteran\’ /inheritance:e
Или отключить наследование с удалением всех наследованных ACEs:
icacls ‘C:\Share\Veteran\’ /inheritance:r
Также icacls можно использовать, чтобы изменить владельца файла или каталога:
icacls ‘C:\Share\Veteran\’ /setowner resource\a.ivanov /T /C /L /Q
Бэкап (экспорт) текущих NTFS разрешений каталога
Перед существенным изменением разрешений (переносе, обновлении ACL, миграции ресурсов) на NTFS папке (общей сетевой папке) желательно создать резервную копию старых разрешений. Данная копия позволит вам вернуться к исходным настройкам или хотя бы уточнить старые права доступа на конкретный файл/каталог.
Для экспорта/импорта текущих NTFS разрешений каталога вы также можете использовать утилиту icacls. Чтобы получить все ACL для конкретной папки (в том числе вложенных каталогов и файлов), и экспортировать их в текстовый файл, нужно выполнить команду
icacls ‘C:\Share\Veteran’ /save c:\ps\veteran_ntfs_perms.txt /t /c
В зависимости от количества файлов и папок, процесс экспорта разрешений может занять довольно продолжительное время. После окончания выполнения команды отобразится статистика о количестве обработанных и пропущенных файлов.
Откройте файл veteran_ntfs_perms.txt с помощью любого текстового редактора. Как вы видите, он содержит полный список папок и файлов в каталоге, и для каждого указаны текущие разрешения в формате SDDL (Security Descriptor Definition Language).
К примеру, текущие NTFS разрешения на корень папки такие:
Данная строка описывает доступ для нескольких групп или пользователей. Мы не будем подробно углубляться в SDDL синтаксис (при желании справку по нему можно найти на MSDN, или вкратце формат рассматривался в статье об управлении правами на службы Windows). Мы для примера разберем небольшой кусок SDDL, выбрав только одного субъекта:
A – тип доступа (Allow)
OICI – флаг наследования (OBJECT INHERIT+ CONTAINER INHERIT)
FA – тип разрешения (SDDL_FILE_ALL – все разрешено)
S-1-5-21-2340243621-32346796122-2349433313-24109193 – SID учетной записи или группы в домене, для которой заданы разрешения. Чтобы преобразовать SID в имя учетной записи или группы, воспользуйтесь командой:
Таким образом, мы узнали, что пользователь corp\dvivan обладал полными правами (Full Control) на данный каталог.
Восстановление NTFS разрешений с помощью iCacls
С помощью ранее созданного файла veteran_ntfs_perms.txt вы можете восстановить NTFS разрешения на каталог. Чтобы задать NTFS права на объекты в каталоге в соответствии со значениями в файле с резервной копией ACL, выполните команду:
icacls C:\share /restore c:\PS\veteran_ntfs_perms.txt /t /c
По окончанию восстановления разрешений также отобразится статистика о количестве обработанных файлов:
С учетом того, что в резервной копии ACL указываются относительные, а не абсолютные пути к файлам, вы можете восстановить разрешения в каталоге даже после его перемещения на другой диск/каталог.
Сброс NTFS разрешений в Windows
С помощью утилиты icacls вы можете сбросить текущие разрешения на указанный файл или каталог (и любые вложенные объекты):
icacls C:\share\veteran /reset /T /Q /C /RESET
Данная команда включит для указанного объекта наследование NTFS разрешений с родительского каталога, и удалит любые другие права.
Копирование NTFS прав между папками
Вы можете использовать текстовый файл с резервной копией ACL для копирования NTFS разрешений с одного каталога на другой/
Сначала создайте бэкап NTFS разрешений корня папки:
icacls ‘C:\Share\Veteran’ /save c:\ps\save_ntfs_perms.txt /c
А замет примените сохраненные ACL к целевой папке:
icacls e:\share /restore c:\ps\save_ntfs_perms.txt /c
Это сработает, если исходная и целевая папка называются одинаково. А что делать, если имя целевой папки отличается? Например, вам нужно скопировать NTFS разрешения на каталог E:\PublicDOCS
Проще всего открыть файл save_ntfs_perms.txt в блокноте и отредактировать имя каталога. С помощью функции Replace замените имя каталога Veteran на PublicDOCS.
Затем импортируйте NTFS разрешения из файла и примените их к целевому каталогу:
icacls e:\ /restore c:\ps\save_ntfs_perms.txt /c
Если не нужно специальных «извращений» с правами, то можно воспользоваться и предыдущей, более простой и удобной утилитой — cacls.exe, которая все еще входит в состав Windows
Возможно ее вывод разрешений и проще чем у icacls, но вот экспорт, импорт разрешений и рекурсию она все же не поддерживает.
И да, я же написал
«Если не нужно специальных «извращений» с правами»
cacls.exe освоить в разы проще/ Правд. если дружишь с правильным текстовым редактором, а не с ГУЁвым.
Экспорт/Импорт — в чем проблема?
Экспорт — переадресация вывода в файл
Импорт — запуск bat-ника после обработки в FAR (любом редакторе с макросами)
Правда сегодняшние «новички» они все больше «мышиные» (ГУЁ-вые) пользователи 🙂 А не админы 🙂
Админ обязан уметь писать батники любой сложности.
А уж из регулярной структуры, которую выдает cacls, слепить батник в FAR’е, с использованием макросов, проще простого
Спасибо за статью.
Вопрос — прокатал процедуру на одном из своих фс. из 1,5 млн. файлов около 1600 в ошибке. Как можно узнать что это за файлы?
Утилита ICACLS выводит довольно подробный лог. Добавьте атрибут /q (не будут выводится сообщения об успешных операциях) и перенаправьте вывод в текстовый файл:
icacls D:\Share /save c:\ps\share_ntfs_perms.txt /t /c /q >>c:\ps\icacls.log
А что если путь к файлу превышает 256 символов, как обойти ограничение?
Строить фалйовое хранилище на Windows 10 …. О! Это что-то запредельное 🙂 Поэтому отключили там ограничение или нет, не так существенно. 🙂
Жаль у icacls не хватает одного ключа. Сохранять разрешения только для папок. Файлы, то так и так вложенные получать теже самые разрешения, что и у их папки. Я не быру в расчет «странные» разрешения на файл.папки внутри папки, отличные от нее самой (кроме прав на корневую)
А старый вариант cacls не умеет ходить по вложенным папкам.
В итоге выкручиваемся используя оба средства 🙂
icacls не сохраняет ВЛАДЕЛЬЦЕВ, банально в SDDL-строках отсутствует O:S-1-……… как можно заметить, а при /restore тогда «Отказано в доступе!». А с cacls и подавно…
Когда в свойствах файла во вкладке Безопасность такое:
«У вас нет разрешения на просмотр текущих разрешений для этого объекта»;
Не удалось отобразить текущего владельца.
а так же в колонке «Владелец» (System.FileOwner или <9B174B34-40FF-11D2-A27E-00C04FC30871>,4) проводника пустое значение напротив объекта — короче говоря, нет прав READ_CONTROL (RC или 0x00020000) — придётся вслепую менять владельца (чтобы сохранить разрешения), если кнопка [Изменить] так же недоступна (даже icacls …… /grant *S-1-5-32-544:(RC) не удалось обработать ……
cacls …… /E /G Администраторы:F — Отказано в доступе).
А если [Изменить] разрешения всё-таки позволяет (не показывая владельца), то тут уже сразу сужается круг предположительного владельца.
Восстановление прав доступа используя шаблон acl
4. Пример использования SubInAcl для смены прав на раздел реестра из командной строки: 1 и 2
» width=»100%» style=»BORDER-RIGHT: #719bd9 1px solid; BORDER-LEFT: #719bd9 1px solid; BORDER-BOTTOM: #719bd9 1px solid» cellpadding=»6″ cellspacing=»0″ border=»0″>Сообщения: 15
Благодарности: 1
Сообщения: 25157
Благодарности: 3792
1. нечего корявые русификаторы использовать, можно подумать в винде так все непонятно на английском.
2. при каких действиях возникает ошибка?
Сообщения: 120
Благодарности: 9
АНАЛОГИЧНО И ДЛЯ W7
Сообщения: 36074
Благодарности: 6527
Как восстановить права доступа к файлам и папкам по умолчанию в Windows 10
Если вам по какой-то причине пришлось изменить разрешения для файлов и папок в Windows, и если вы хотите сбросить разрешения до значений по умолчанию, этот пост поможет вам. Один из пользователей сообщил, что ему пришлось установить право собственности и разрешения для всех, а также полный контроль над конкретной задачей, и теперь, когда это сделано, вернуться к разрешению по умолчанию сложно. Поскольку опция не встроена в систему, нам придется использовать secedit и icacls команды для перенастройки.
Как восстановить права доступа к файлам и папкам по умолчанию
Безопасность важна, и это не только то, что другие пользователи могут получить доступ к файлам, но и программы, которые вы устанавливаете на компьютер, также получают такой же доступ. Хорошая новость заключается в том, что установить разрешения по умолчанию легко, и все, что вам нужно, — это запустить программу из командной строки, чтобы исправить это. Прежде чем продолжить, создайте точку восстановления системы, чтобы вы могли восстановить ее, если что-то пойдет не так.
Для выполнения команд вам потребуется разрешение администратора.
1]Запустить команду icacls
Другой способ решить эту проблему — использовать команду icacls. Однако вам нужно сначала стать владельцем папки, а затем выполнить команду. Windows использует список управления доступом для настройки разрешений для всех файлов и папок. Icacls — это утилита командной строки который может отображать и изменять разрешения для указанных файлов и применять их.
Он поставляется с опцией сброса, которая заменяет ACL унаследованными ACL по умолчанию для всех совпадающих файлов. Мы будем использовать следующие параметры для сброса
Затем выполните в командной строке с повышенными привилегиями следующее:
После этого вы должны сохранить разрешение в файл, который можно будет использовать позже или применить к другим компьютерам.
2]Запустить команду Secedit
Он позволяет настраивать и анализировать безопасность системы, сравнивая текущую конфигурацию с шаблоном.
Настраивает и анализирует безопасность системы, сравнивая текущую конфигурацию безопасности с указанными шаблонами безопасности.
Введите CMD в строке «Выполнить» (Win + R), а затем нажмите Shift + Enter, чтобы открыть его с правами администратора.
Выполните следующую команду:
Вы можете получить предупреждение, но можете проигнорировать его.
Изменить разрешение в Windows сложно, потому что нет возможности вернуться к разрешению по умолчанию после его изменения. Это должно было быть с самого начала и позволить пользователям Windows исправить это самостоятельно.
Я надеюсь, что эти команды были полезны и помогли вам сбросить права доступа к файлам и папкам по умолчанию в Windows.
- восстановление прав доступа windows 10
- восстановление прав и стс при утере