- Скрываем папки недоступные пользователю с помощью 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
- Как скрыть диски на терминальном сервере
Скрываем папки недоступные пользователю с помощью 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.
Как скрыть диски на терминальном сервере
Здравствуйте всем!
Подскажите кто знает как скрыть диск Д от пользователей
на windows server 8 на нем развернута служба терминалов (удаленного рабочего стола)
там крутятся 1с (ки) наших клиентов (их очень много)
необходимо что бы пользователи (клиенты) видели только свои папки а некоторые многие из папок
как на пример клиент «А» имеет доступ к папке на диске Д Папка D:\1cbase\Клиент1
например бухгалтерия Должна видеть как
D:\1cbase\Клиент1
D:\1cbase\Клиент2
D:\1cbase\Клиент3
D:\1cbase\Клиент4
D:\1cbase\Клиент5
при всем при этом
даже пользователи из группы Бухгалтерия не должны видеть папок которые от них скрыли
я с ночало сделал так закрыл доступ к диск Д для пользователей группы (Пользователи удаленного рабочего стола)
а потом дал оступ каждому из пользователей к конкретным папкам
оно то вроде бы получилось
ни один пользователь не может войти на диск Д при этом он может войти в свои папки (ярлыки на которые я им повесил на рабочий стол)
НО есть одно но из за того что я закрыл доступ к диск Д теперь пользователи не могут войти в 1с или удалить или добавить папку (файлы)
>>НО есть одно но из за того что я закрыл доступ к диск Д теперь пользователи не могут войти в 1с или удалить или добавить папку (файлы)
Дык дай им доступ на чтение к папке где лежат бинарники 1С, дай доступ на запись к той папке, в которой они должны добавлять папку и файлы, ну и если 1С файловая, то на запись на папку с базой.
Сделай папки
D:\клиент1\
D:\клиент2\
настрой права доступа.
Названия папок все видеть будут, но зайти не смогут.
Папки можно сделать обезличено. 01, 02, 03 и т.д.
А уже внутри папок клиентов создавай каталоги с базами.
(7) мне необходимо именно что бы заходить в диск не могли я понимаю что можно по переименовывать все папки но при этом представьте картину
Фирма которая предоставляет данную услугу (сервер терминалов)
помимо этого еще занимается и ведением бухгалтерского учета
то есть выходит что если я так сделаю то бухгалтера меня попросту порвут мне необходимо сделать так что бы
либо войти на диск не было возможности или
например вошли но списка (папок,файлов) (кроме своей) не было видно
или же вовсе диск спрятать (убрать видимость)
при всем при этом сохранить доступ к содержимому к которому у вас имеются все права
всего бы нечего
если бы получилось сделать так
убрал для определенной группы (например пользователи удал раб стола) флажок из безопасности (Чтение содержимого) все остальное оставил теперь на диск войти не возможно а вот в папку для которой я конкретному пользователю даю все права войти через ярлык на рабочем столе получается 1с 7 вроде бы запускается (но будет ли она сохранять данные и т д пока не известно не тестил)
и вот она проблема при таких настройках система не дает пользователю сохранять , удалять , создавать папки и файлы)
или можно ли сделать так спрятать диск вообще
расшарить папки — дать им права и видимость только для конкретных пользователей
и по подключать их как сетевые диски?
но опять же как вырубить видимость всего диска при этом сохраняя права на запись удаление и т д файлов папок)
еще варинт был но он не подходит
разбить диск на кучу разделов каждый раздел это пользователь (клиент) каждому дать разрешение на пользование только своим разделом и все но и тут неудобства косающиеся наших бухгалтеров((((
к стати вот скрины настроек которые затем не дают создать например папку или удалить в папку в папке клиента на диске Д
есть скажем 4 пользователя
так вот когда подрубается пользователь «Бухгалтер» он должен видеть все папки и иметь ко всем им доступ в папке d:\1c-base\ но в корень диска D:\ он не должен выходить то есть крутиться разрешено только в папке d:\1c-base\
теперь входит пользователь «Клиент1» вот он может крутиться только в папке
d:\1c-base\клиент1
d:\1c-base\клиент1\обмен
но назад в папку d:\1c-base выйти не имеет право или на корень диска