- sysrtfm
- Блог, инструкция системного администратора, форум, советы, помощь
- Как скрыть папки недоступные пользователю в Windows Server 2008
- Показать скрытые папки и файлы
- WinXP
- WinSrv2008
- Скрываем папки недоступные пользователю с помощью Access-Based Enumeration (ABE) в Windows Server
- Особенности доступа к общим сетевым папкам Windows
- Ограничения Access Based Enumeration
- Использование ABE в Windows Server 2008 / 2008 R2
- Настройка Access Based Enumeration в Windows Server 2012 R2/ 2016
- Настройка Access Based Enumeration в Windows Server 2003
- Управление ABE из командной строки
- Управление Access Based Enumeration с помощью PowerShell
- Access-Based Enumeration в Windows 10 / 8.1 / 7
sysrtfm
Блог, инструкция системного администратора, форум, советы, помощь
Как скрыть папки недоступные пользователю в Windows Server 2008
Понадобилось скрыть папки недоступные пользователю на уровне NTFS средствами Windows. Опишу ситуацию. Есть файловый сервер на Windows server 2008 R2. Расшарена папка, на нее даны права всем пользователям. Внутри папки много много других папок, на все даны индивидуальные NTFS разрешения. Когда пользователь заходит на шару вида \\server\share\ он видит весь список папок:
Это список всех папок, доступных пользователям. Нам же нужно скрыть недоступные. Для этого идем по RDP на сервер. Запускаем оснастку storagemgmt.msc. Заходим в свойства шары, Жмем advanced и ставим галку access based enumeration. В общем вот скрин:
Теперь, если зайти под пользователем на шару и обновить все папочки то получится вот так:
Это как раз то, что нам и нужно. Это очень удобно когда на ресурсе очень много папок и пользователям в них сложно ориентироваться.
Показать скрытые папки и файлы
Сегодня мы с вами научимся включать отображение по умолчанию скрытых системных файлов в операционных системах (ОС) Windows. Зачем нам это знать?
Все просто, фактически всё кэширование интернет-браузеров и исполнительных программ происходит как раз в папках с именами Local Settings, Application Data и Temp, которые расположены на вашем локальном диске С, или диске, на котором установлена операционная система Windows.
Вот как раз эти папки и являются по умолчанию скрытыми. У меня под рукой только 2 ОС: 32-х разрядная Microsoft Windows XP sp3 и 64-и разрядная Microsoft Windows Server 2008. Ну вот на их примерах, я вам и покажу, как включить отображение скрытых файлов.
WinXP
Для включения скрытых файлов в этой ОС, вам необходимо перейти в меню «Пуск»-«Настройка»-«Панель управления».
Далее переходим в Панель управления основными свойствами вашего компьютера. Рекомендую поменять отображение значков в наиболее удобный для вас (в моем примере я использовал вид отображения «значки»).
Сделать это можно из пункта меню «Вид». Далее находим пиктограмму с названием «Свойства папки» и открываем ее.
В открывшемся окне нам нужно перейти на вкладку «Вид», прокрутить скролл в самый низ, и в пункте «Скрытые файлы и папки» установить чекбокс на значении «Показывать скрытые файлы и папки» и нажать «Применить».
В момент применения скорее всего станет активным кнопка «Применить ко всем папкам» и для использования данного свойства ко всем папкам и файлам вашего компьютера, рекомендую ее установить.
Включение отображения скрытых файлов и папок, кстати, можно сделать и непосредственно из папки (находясь в папке, переходим в пункт меню «Сервис»-«Свойства папки»), в которой необходимо получить доступ к этим файлам.
Скрытые папки, после включения их отображения принимают немного осветленный цвет, в отличии от не скрытых.
WinSrv2008
Настройка отображения скрытых файлов и папок очень похожа на вариант с настройкой в WinXP, которую мы рассмотрели выше, только непосредственно из самой папки, путь несколько отличается.
Но настройка отображения остается прежней.
И в панели инструментов названия пиктограммы имеет название «Параметры папок».
Вот в общем-то и все. Надеюсь, заметка была вам полезна.
Скрываем папки недоступные пользователю с помощью Access-Based Enumeration (ABE) в Windows Server
Технология Access-based Enumeration (ABE — Перечисление на основании доступа) позволяет на общих сетевых ресурсах (шарах) скрыть от пользователей файлы и папки, к которым у них отсутствует права доступа на чтение на уровне NTFS. Тем самым можно обеспечить дополнительную конфиденциальность данных, хранящихся в сетевом каталоге (за счет скрытия структуры и имен каталогов и файлов), улучшить юзабилити для пользователя, которому в процессе работы с сетевым каталогом не будет отображаться лишняя информация (тем более доступ к которой у него все равно отсутствует) и, самое главное, оградим системного администратора от постоянных вопросов пользователей «почему меня не пускает в эту папку!!». Попробуем детальнее разобраться в этой технологии и особенностях ее настройки и использования в различных версиях Windows.
Особенности доступа к общим сетевым папкам Windows
Одним из недостатков сетевых папок Windows является тот факт, что по-умолчанию все пользователи при просмотре содержимого общей папки могли, как минимум, видеть ее структуру и список содержащихся в ней файлов и каталогов, в том числе тех, доступ к которым на уровне NTFS у них отсутствует (при попытке открыть такой файл или папку пользователь получает ошибку доступа «Доступ запрещен / Access Denied»). Так почему бы не скрыть от пользователя те каталоги и файлы, к которым у него все равно нет доступа? Помочь в этой задаче должна технология Access Based Enumeration (ABE). Включив ABE на общей сетевой папке можно добиться того, чтобы разные пользователи видели различный список каталогов и файлов в одной и той же сетевой шаре, основанный индивидуальных правах доступа пользователя к этим папкам (ACL).
Каким образом происходит взаимодействие между клиентом и сервером при обращении к общей папке:
- Клиент обращается к серверу с запросом на доступ к интересующему его каталогу в общей сетевой папке;
- Служба LanmanServer на сервере проверяет, есть ли у пользователя права доступа к данному каталогу на уровне разрешений файловой системе NTFS;
- Если доступ разрешен (просмотр содержимого/чтение/запись), пользователь видит список содержимого каталога;
- Затем пользователь по такой же схеме может открыть конкретный файл или вложенный каталог (вы можете посмотреть, кто открыл конкретный файл в сетевой папке так). Если доступа к папке нет, пользователь получает соответствующее уведомление.
Из этой схемы ясно, что сервер сначала показывает пользователю все содержимое папки, а проверку прав доступа на конкретный объект осуществляет только после попытки доступа к его содержимому.
Функционал Access Based Enumeration (ABE) позволяет реализовать проверку прав доступа на объекты файловой системы до того, как пользователю отправляется список содержимого папки. Следовательно, в конечный список будут попадать только те объекты, к которым у пользователя есть хотя бы права Read на уровне NTFS, а все недоступные ресурсы просто не отображаются (скрываются).
Т.е. пользователь одного отдела (например, склада) в одном и том же сетевом каталоге (\\filesrv1\docs) будет видеть один список папок и файлов. Как вы видите, у пользователя отображаются только две папки: Public и Sklad.
У пользователей другого департамента, например, ИТ (которые включены в другую группу безопасности Windows), отображается другой список вложенных каталогов. Помимо каталогов Public и Sklad у данных пользователей в сетевой папке видны еще 6 директорий.
Основной недостаток использования ABE на файловых серверах – дополнительная нагрузка на сервер. Особенно это можно почувствовать на высоконагруженных файловых серверах. Чем больше количество объектов в просматриваемом каталоге, и чем больше количество пользователей открывают файлы на нем, тем больше задержка. По заявлению Microsoft в случае наличия в отображаемом каталоге 15000 объектов (файлов и каталогов), скорость открытия папки замедляется на 1-3 секунды. Именно поэтому, при проектировании структуры общих папок, рекомендуется уделить большое внимание созданию четкой и иерархической структуры подпапок, в этом случае замедление скорости открытия каталогов будет незаметным.
Управлять ABE можно из командной строки (утилита abecmd.exe), из графического интерфейса, PowerShell или через специальный API.
Ограничения Access Based Enumeration
Access-based Enumeration в Windows не работает в случаях:
- Если в качестве файл-сервера используется Windows XP или Windows Server 2003 без Service Pack;
- При локальном просмотре каталогов (непосредственно с сервера). Например, пользователь, подключившись к RDS серверу будет видеть все локальные папки, если данный сервер используется и в качестве файлового сервера);
- Для членов локальной группы администраторов файлового сервера (они всегда видят полный список файлов).
Использование ABE в Windows Server 2008 / 2008 R2
В Windows Server 2008/R2 для использования функционала Access Based Enumeration никаких дополнительных компонентов устанавливать не нужно, т.к. возможность управления функционалом ABE уже встроена в графический интерфейс Windows. Чтобы включить Access-based Enumeration для конкретной папки в Windows Server 2008/2008 R2, откройте mmc консоль управления Share and Storage Management (Start –> Programs –> Administrative Tools ->Share and Storage Management). Перейдите в окно свойств нужной шары. Затем перейдите в окно расширенных настроек (кнопка Advanced) и включите опцию Enable access-based enumeration.
Настройка Access Based Enumeration в Windows Server 2012 R2/ 2016
Настройка ABE в Windows Server 2012 R2 / 2016 также выполняется просто. Чтобы включить Access Based Enumeration необходимо сначала, естественно, установить роль файлового сервера (File And Storage Services), а затем в консоли Server Manager перейти в свойства общей папки.
И в разделе Settings включить опцию Enable access-based enumeration.
Настройка Access Based Enumeration в Windows Server 2003
В Windows Server 2003 (снята с поддержки) технология ABE стала поддерживаться начиная с Service Pack1. Чтобы включить Access-based Enumeration в Windows Server 2003 SP1 (и выше), нужно скачать и установить пакет _http://www.microsoft.com/en-us/download/details.aspx?id=17510. В процессе установки необходимо указать, нужно ли автоматически включить ABE для всех общих папок на сервере, либо настройка будет проводиться в индивидуальном порядке. Если выбран второй пункт, то после окончания установки пакета, в свойствах общих папок появится новая вкладка Access-based Enumeration.
Чтобы активировать ABE для конкретной папки, включите в ее свойствах опцию Enable access-based enumeration on this shared folder.
Также отметим, что в Windows 2003 поддерживается использование Access Based Enumeration на основе DFS, однако настроить его можно только из командной строки с помощью утилиты cacls.
Управление ABE из командной строки
Настройками Access-based Enumeration можно управлять из командной строки при помощи утилиты Abecmd.exe. Данная утилита входит в пакет Access-based Enumeration для Windows Server 2003 SP1 (ссылка выше).
Утилита Abecmd.exe позволяет активировать ABE сразу для всех каталогов или же персонально. Следующая команда включит Access-Based Enumeration сразу для всех шар:
abecmd /enable /all
Или для конкретной папки (например, шары с именем Docs):
abecmd /enable Docs
Управление Access Based Enumeration с помощью PowerShell
Для управления настройками Access Based Enumeration для конкретных папок можно использовать PowerShell модуль SMBShare (установлен по-умолчанию в Windows 10/8.1 и Windows Server 2016/ 2012 R2). Выведем свойства конкретной сетевой папки:
Обратите внимание на значение атрибута FolderEnumerationMode. В нашем случае его значение – Unrestricted. Это означает, что ABE отключен для этой папки.
Можно проверить статус ABE для всех сетевых папок сервера:
Get-SmbShare | Select-Object Name,FolderEnumerationMode
Чтобы включить ABE для папки, выполните:
Get-SmbShare Install | Set-SmbShare -FolderEnumerationMode AccessBased
Вы можете включить Access Based Enumeration для всех опубликованных сетевых папок (в том числе административных шар ADMIN$, C$, E$, IPC$), выполните:
Get-SmbShare Install | Set-SmbShare -FolderEnumerationMode AccessBased
Чтобы отключить ABE, выполните:
Get-SmbShare Install | Set-SmbShare -FolderEnumerationMode Unrestricted
Access-Based Enumeration в Windows 10 / 8.1 / 7
Многим пользователем, особенно в домашних сетях, также хотелось бы иметь возможность воспользоваться функционалом Access-Based Enumeration. Проблема заключается в том, что в клиентских ОС Microsoft отсутствует как графический, так и командный интерфейс управления «Перечислением на основе доступа».
В Windows 10 (Server 2016) и Windows 8.1 (Server 2012R2) для управления Access-based Enumeration можно использовать PowerShell (см. раздел выше). В более старых версиях Windows, вам необходимо установить последнюю версию PowerShell (>= 5.0) или использовать утилиту abecmd.exe из пакета для Windows Server 2003, прекрасно работает и на клиентских ОС. Т.к. пакет Windows Server 2003 Access-based Enumeration на Windows 10 / 8.1 / 7 не устанавливается, придется сначала установить его на Windows Server 2003, а затем скопировать его из каталога C:\windows\system32 в такой же каталог на клиенте. После этого включить ABE можно по сценарию с командной строкой, описанному выше.
Кроме того, вы можете включать ABE на компьютерах домена AD с помощью групповых политик. Для этого используется GPP в секции: Computer Configuration -> Preferences -> Windows Settings -> Network Shares).
Как вы видите, в свойствах сетевой папки есть опция Access-Based Enumeration, если изменить значение на Enable, для всех общих папок, созданных с помощью данной GPO будет включен режим ABE.